当我应该/不应该使用git pull --rebase

时间:2013-09-06 03:59:09

标签: git version-control

已经检查了这些问题:

When should I use git pull --rebase?

Git commits are duplicated in the same branch after doing a rebase

When will `git pull --rebase` get me in to trouble?

但我不明白的是,有些人说你应该总是git pull --rebase,而其他人则在拉动时将其设置为默认选项,而其他人则认为这会产生问题。

我正面临git log中的重复提交问题,我想这是因为--rebasing在错误的时间我们应该只pull,我知道git pull之间的区别而git pull --rebase是git pull试图合并本地和远程,而git pull --rebase复制提交。

场景:

  1. 当我开始工作时,在做任何新事之前,我需要提取其他开发人员的更改,我应该使用git pull --rebase还是git pull?为什么?
  2. 当我工作并提交并决定推动但是git要求我先拉,如果我使用git pull --rebase or git pull?为什么?
  3. 当我工作和提交,工作和提交(循环)然后在我的工作中我需要别人的更改才能继续我的任务{i git pullgit pull --rebase?为什么?
  4. 由于

1 个答案:

答案 0 :(得分:2)

git pull执行两项操作 - git fetch后跟git merge。如果您使用git pull --rebase,则会git fetch后跟git rebase。回答您的具体问题:

  1. 如果您尚未在本地提交任何更改,则无关紧要。结果将是相同的。隐式git merge将是一个快进。

  2. 通常在这种情况下你想要改变;你希望你的改变是基于遥控器发生的线性历史。

  3. 通常你也会在这里改变。同样,您希望将本地工作添加到远程历史记录之上,而不是向其添加合并提交。

  4. 只有无法在远程跟踪分支上工作,才能避免所有这些混乱。