为什么执行git pull origin master会创建一个合并提交

3

我的远程同事总是创建没有实际意义的虚拟合并提交 - 它们包含了自上次推送到仓库以来已经推送的相同代码。我想阻止这种情况,但无法弄清他是如何做到的 - 他说他唯一做的就是 git pull origin master,但出于某种原因它会将远程代码拉下来作为他自己的代码。有任何想法吗?我想去用 tmate 检查他的终端。


2个回答

5
git pull 的默认行为是合并。

将远程仓库的更改合并到当前分支中。在默认模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。

https://git-scm.com/docs/git-pull

如果您想改变这种行为,可以添加 --rebasegit pull --rebase),或者直接配置 git 始终使用 rebase 实现所需的默认行为。

将以下内容添加到您的 .gitconfig 文件中。

[pull] 
  rebase = true

或者可以通过命令行配置:

git config --global pull.rebase true

3
本地分支有一个或多个提交尚未推送和合并到远程仓库的分支,同时远程仓库的分支也有一个或多个提交尚未获取和合并到本地分支。这两个分支已经分叉。
为了防止创建合并提交,请在git pull命令中添加--rebase-r参数,例如git pull origin -r master。这样,将首先获取远程仓库的分支,然后将本地分支上的新提交变基到获取的头部。本地分支将始终与远程仓库的分支保持最新或领先状态。

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