以前的答案对我来说还不清楚,以下命令是否影响团队合作:
git checkout -b featureX
// add some changes ..
git commit ...
// add some changes ..
git commit ...
// add some changes ..
git commit ...
// add some changes ..
git commit ...
git push ..
and another partner does the following:
git pull origin featureX
// add some changes ..
git commit ...
// add some changes ..
git commit ...
...
git rebase -i featureX ~ 5 featureX
git push origin + featureX
and I then:
git pull
git checkout featureX
git rebase master
// or
git merge master
这会带来问题吗?
如果是这样,作为一个团队,要进行大量提交然后以清晰的方式合并,该怎么做?
答案 0 :(得分:2)
可能会为您造成问题的步骤是这一部分:
git rebase -i featureX ~ 5 featureX
git push origin + featureX
and I then:
git pull
它可能造成问题的原因是,如果您自上次推送以来就修改了代码,则代码可能基于不再在提交历史记录中的提交(它们可能已被修改或删除)。您的队友在进行互动式变基时)。这不是一个“不可恢复”的问题,但它可能导致混乱,重复的提交,不良的合并分辨率等。因此,简单的经验法则是-不要重写别人可能已将其用作起点的历史记录工作。
还有其他一些想法可以帮助您组织提交,而不会遇到git历史记录问题:
git rebase -i
。git rebase -i
,然后再合并到母版中。这是安全的,因为您知道没人会对要修改的提交做更多的工作。feature1-alan
)。您可以根据需要在该分支上进行多次推入/拉出操作,也可以根据需要在其他计算机上进行推拉操作。您也可以压缩提交并在需要时强制推动该分支-只要您没有在另一台计算机上闲逛的未合并工作即可。您可以将此分支合并到团队的feature
,master
分支中,也可以将其合并后对提交的外观感到满意。