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



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

  

user avatar   pansz 网友的相关建议: 
      

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

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

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

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

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


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




  

相关话题

  开源统计软件piwik公然将西藏从中国地图上分离出去,怎样说服作者把它改回来? 
  如何让公司从 SVN 改到 Git? 
  近期冲上 GitHub 热榜的网络游戏 「Wordle」 是什么?与其他文字猜谜游戏有哪些不同? 
  IDE 有必要集成 Git 吗? 
  程序员如何有效、愉快的使用 GitHub? 
  真的会有人用 vim 开发大的项目吗? 
  Git 有哪些缺点? 
  如何在 GitHub 上写博客? 
  如何看待 GitHub 上许多学习笔记、面经等项目获得过多的 star? 
  为什么要先 git add 才能 git commit ? 

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





© 2025-04-14 - tinynew.org. All Rights Reserved.
© 2025-04-14 - tinynew.org. 保留所有权利