何时使用/不使用 git pull --rebase

3

已经查看了这些问题:

何时应该使用 git pull --rebase?

在 rebase 后相同分支中的 Git 提交是重复的

什么情况下使用 `git pull --rebase` 会给我带来麻烦?

但我不理解的是,有些人说你应该总是使用 git pull --rebase,还有其他人将其设置为拉取时的默认选项,而其他人则表示它会导致问题。

我在 git 日志中遇到了重复提交的问题,我想这是因为在错误的时间使用了 --rebasing,我们应该只使用 pull,我知道 git pullgit pull --rebase 的区别在于 git pull 尝试合并本地和远程,而 git pull --rebase 复制提交。

场景:

  1. 当我开始工作之前,需要拉取其他开发人员的更改,我应该使用 git pull --rebase 还是只使用 git pull?为什么?
  2. 当我工作并提交后决定推送,但然后 git 要求我先拉取,我应该使用 git pull --rebase 或 git pull?为什么?
  3. 当我工作并提交、工作和提交(循环)时,在继续我的任务之前,我需要其他人的更改,我应该使用 git pull 还是 git pull --rebase?为什么?

谢谢


看起来你不知道合并和变基的区别。如果你阅读Git 书籍中相关部分,所有问题都应该得到解答。 - Carl Norum
1个回答

2
git pull命令包含两个步骤——先执行git fetch,再执行git merge。如果使用git pull --rebase命令,则会先执行git fetch,再执行git rebase。回答您的具体问题:
  1. 如果您在本地没有提交任何更改,那么无论如何都不会有影响。隐式的git merge将是一个快进合并。

  2. 通常情况下,在这种情况下,您应该选择变基;您希望您的更改成为远程代码库中线性历史的一部分。

  3. 通常情况下,您也应该选择变基。同样,您希望将您的本地工作添加到远程代码库的历史记录之上,而不是添加合并提交。

通过不要在追踪远程分支上工作,可以避免所有这些混乱。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接