gpt4 book ai didi

git - 当您重写公共(public)分支的历史时会发生什么?

转载 作者:太空狗 更新时间:2023-10-29 12:54:06 24 4
gpt4 key购买 nike

我到处都读到,重写已发布的提交历史是不好的,并且会“破坏”其他开发人员的存储库。

但是,我一直无法找到有关究竟是什么会损坏以及如何修复它的详细信息。

那么,如果我要重写历史和 git push --force,我应该告诉其他开发人员做什么才能使他们保持最新状态?

最佳答案

这可能是我见过的最好的解释:http://git-scm.com/book/ch3-6.html#The-Perils-of-Rebasing

简短的回答是,其他开发人员会 pull 下修改后的公共(public)存储库,并尝试将这些更改适本地 merge 到他们当前的工作中。由于最近的祖先可能已更改,因此此 merge 可能很复杂,可能需要手动执行。一个粗略的例子如下:

开发人员 A 进行了多次提交并将它们推送到服务器。开发人员 B 然后将这些提交 merge 到他们的本地分支(或可能来自其中一个提交的分支)。开发人员 A 决定 rebase 他们的旧提交并将结果推送到服务器。

这有效地删除了来自开发人员 B 正在使用的服务器的提交,并将它们替换为具有不同标识符的基本相同的提交。

现在,如果开发人员 B 再次从服务器下 pull ,他们需要将 post-rebase 提交 merge 到他们的工作中,有效地将相同的更改 merge 两次。

如果开发人员 A 在 rebase 过程中删除了提交或修改了提交,那么开发人员 B 需要处理更复杂的 merge 。

关于git - 当您重写公共(public)分支的历史时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com