Dan*_*nes 7 git github git-rebase branching-and-merging
我们的GitHub存储库存在问题.我将解释我们的工作流程:
开发人员从主线分支创建功能/错误修复分支.他们拉取请求他们的更改以将其合并回来.他们可能会从主线分支重新定义,以便在它们工作时从中获取最新更新.在一次重组后,他们推动 - 强制他们的功能分支.
最近使用GitHub Web界面自动合并了两个拉取请求.随后 - 在请求合并后大约两天 - 发现这些提交中的更改不在代码中.历史上没有任何内容表明这些变化被还原或覆盖.合并本身不会出现在提交历史记录中,并且单独的提交本身也不会出现.但拉取请求已成功合并.其中一个遗失的提交不再适用于樱桃选择.当我们尝试时,我们得到一个致命的 - 坏对象消息.
我们怀疑是否发生过一些历史改写.我们如何才能发现以及如何防止这种情况发生.我们的工作流程是否存在根本性问题?
您面临的问题与开发人员从主分支重新建立基础然后强制推送他们的分支有关。实际上,git rebase它会取消提交您所做的所有更改,合并主分支,然后重新应用您的提交(就好像它们是补丁文件一样)。这将使用全新的哈希创建一个全新的 git 提交。
简而言之,旧的提交丢失了,并且创建了一个新的相同提交。
这就是为什么极不鼓励对任何公开的工作进行 rebase,因为这实际上正在改变历史。如果任何从您的工作中分支出来的人的工作基于不再可用的更改,那么他们的日子将会非常糟糕。
编辑:提交本身并没有丢失,它仍然存在于您的存储库中。然而,它在手头的分支机构不再可用
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |