百科问答小站 logo
百科问答小站 font logo



在开发过程中使用 git rebase 还是 git merge,优缺点分别是什么? 第1页

  

user avatar   pansz 网友的相关建议: 
      

多人协同工作应该用 merge,一个人写代码可以用 rebase。

merge会产生分支,然而从版本管理的角度,多人的工作本来就应该位于不同的分支。单纯为了线条好看而扭曲了实际开发过程中的事实,并不是可取的行为。

如果需要merge,本来就是因为在你提交之前有别人修改了代码,那么别人的代码事实上确实就是与你并行修改。从流程上讲,别人的代码与你并行修改,并且同时都基于某个早先的基线版本,那么这样的两组修改就确实应该位于不同的分支。分支归并正确的显示了多人协同开发过程中实际发生的客观事实。

因此显然应该选择merge,版本管理软件的职责就是准确的记录开发历史上发生过的所有事情,merge能确保你基于修改的基点忠实的反应了情况,这种情况下merge肯定是更准确的。

但如果是你自己一个人写的代码,多余出来的分支确实是不必要的,本来就应该把线整理成线性。那么确实可以考虑使用rebase。——这种情况下一般发生于自己一个人使用了多台电脑,多台电脑各有不同的未提交代码的情形,建议考虑rebase。


结论重复一下:归并目标是他人代码,用来解决两个不同开发者开发的代码冲突的时候,用merge,归并目标是自己代码,用来解决自己在两台不同电脑上修改代码的冲突的时候,用rebase。




  

相关话题

  如何评价现在GitHub上一些非软件开发性质项目增多的风气? 
  已经装了GitHub for Mac,还需要装Git吗? 
  GitHub 为什么讨人喜欢? 
  如何看待 React 在 GitHub 上被大量乌克兰相关 issue 刷屏? 
  哪些特性让你觉得 SVN 比 Git 更好用? 
  个人开发web应用,从需求设计,界面设计,数据库设计,API设计等,好的开发流程是怎么样的? 
  具体看图,git 在master和develop上不同版本,但是却不能切到develop分支,为什么? 
  新程序员如何向英文社区(如github)进阶? 
  哪些特性让你觉得 SVN 比 Git 更好用? 
  程序员如何充分利用博客进行知识沉淀? 

前一个讨论
比特币的结局是否会像郁金香一样?
下一个讨论
为什么民科总是反相对论?





© 2025-03-11 - tinynew.org. All Rights Reserved.
© 2025-03-11 - tinynew.org. 保留所有权利