EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析

jopen 9年前
     <p>此小结为什么说是简单解析呢,因为rebase和merge的选择问题讨论比较激烈,笔者也没有一个定论,而且git也处于研究发展阶段,很多理论还没有完全的纯熟。</p>    <p>对于一个多人开发团队频繁提交更新的情况,如果使用merge会使得历史线图非常复杂,并且merge一次就会新增一个记录点,如果使用rebase就是完全的线性开发。</p>    <p><img alt="EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析 " src="https://simg.open-open.com/show/16e9ac13c84189855f9ac39462818655.png" width="422" height="552" /></p>    <p>上图所示是Merge和Rebase的两个结果,显然你不想要merge的混乱结果吧,你能告诉我merge图中那条线是master分支吗?</p>    <p>所以给出如下建议,如果同一文件反复修改或提交次数比较多,预期会出现很多的conflict,那么可以使用merge合并,仅需要解决一次冲突即 可(不过,大范围主题式的修改,是不是应该事先就新开一个分支呢?);如果修改范围小,预期conflict少,则建议使用rebase。</p>    <p>EGIT中默认的pull操作是Fetch+Merge,如果要用rebase,可以分开操作。先执行Fetch更新remote tracking,再执行rebase进行合并(下一小节将介绍rebase操作)。或者修改pull的默认操作,在.git/config文件中配置:</p>    <p><img alt="EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析 " src="https://simg.open-open.com/show/882d0d70d158b5d4d0380cd62926f130.bmp" width="358" height="84" /></p>    <p>上述配置只对mirror分支有效,也可做全局配置,在$HOME/.gitconfig中配置,windows系统如果没有配置HOME变量的话就默认在$documents and settings/ USER目录下:</p>    <img alt="EEclipse上GIT插件EGIT使用手册之十_Rebase和Merge如何选择的简单解析 " src="https://simg.open-open.com/show/546d80b5206ce31ec5a5cb298aa0898d.bmp" width="356" height="50" />