Git - 在功能分支上获取+合并,在主服务器上进行rebase

时间:2013-05-12 04:39:58

标签: git version-control github dvcs

我花了最后半小时阅读merge vs rebase at 堆栈溢出。据我所知,rebase很好,因为它维持着 线性,但可能会让合作者感到困惑,因为它改变了历史。

那么,推断那个

是否公平
  1. 在功能分支上,使用fetch + merge来维护历史记录并避免使用 合作者之间的混淆。杂乱无关紧要,因为它会 无论如何都要在掌握之后删除。

  2. 在主分支上,使用rebase来避免混乱。修改历史记录不会 很重要,因为功能分支作为单个提交被推出。

2 个答案:

答案 0 :(得分:1)

这主要取决于您的工作流程以及您的分支机构在该工作流程中扮演的角色。

根据经验:

  • rebase是好的,只要你没有发布(即推送)你提交,或者,如果你确定没有其他人对你的分支感兴趣。
  • 将某个功能分支集成到另一个分支时,显式合并很有用。在这种情况下,您需要一个描述性的合并提交。

实际上我几乎总是使用git pull --rebase。重要的是将上游设置为正确的远程分支,即

  • 在将工作推送到功能分支之前分支的分支
  • 之后你的远程功能分支。

答案 1 :(得分:0)

你在上学的时候会变身 Topic Branch

# integrate the latest upstream changes into your "master"
git checkout master
git pull

# make sure that you're on your topic branch
git checkout my_topic

# do the rebase
git rebase master

然后准备就绪时,您可以将主题分支合并到主

git checkout master
git merge my_topic