集中式工作流中冲突处理的疑问
oldratlee opened this issue · 1 comments
oldratlee commented
同步自http://blog.jobbole.com/76847/#comment-62656 ,typhoon 的关于集中式工作流的问题:
- 如果小明和 小红的修改没有冲突,分别修改不同模块文件或者同文件的头和尾,小红是否还需要rebase?
- 如果小红提交**仓库的时候,发生冲突,rebase本地仓库,在小红提交之前的那一会,还有其他人又提交了**仓库的修改,那小红还要rebase,如何避免?
oldratlee commented
- 如果小明和 小红的修改没有冲突,分别修改不同模块文件或者同文件的头和尾,小红是否还需要rebase?
文中也有说到,不用--rebase也是可以合并小明的修改的(你说的Case实际没有冲突),会多出一个没有实际内容的合并提交。
使用--rebase的pull,是为了生成线性的历史,这样和svn风格一致。
关于git合并是否rebase这是个风格问题,不同人不同场合有不同的想法。
可以 看看 恰当的使用git pull --rebase 避免不必要的merge记录 - stackoverflow
更多Git的资料参见:https://github.com/xirong/my-git
如果你现在不觉得是个问题无所谓哪种,可以先按指南中的来。后来自己有喜好了,再看 :)
2.如果小红提交**仓库的时候,发生冲突,rebase本地仓库,在小红提交之前的那一会,还有其他人又提交了**仓库的修改,那小红还要rebase,如何避免?
小红第一次发生冲突,rebase本地仓库且解决冲突后,已经包含了远程提交。这样,第二次又有人提交了**仓库的修改,情况就和第一次是一样的。
和SVN一样,绝大部分情况下,因为修改不同文件或是不同部分,不会有冲突。