我的远程同事总是创建没有实际意义的虚拟合并提交 - 它们包含了自上次推送到仓库以来已经推送的相同代码。我想阻止这种情况,但无法弄清他是如何做到的 - 他说他唯一做的就是 git pull origin master
,但出于某种原因它会将远程代码拉下来作为他自己的代码。有任何想法吗?我想去用 tmate
检查他的终端。
我的远程同事总是创建没有实际意义的虚拟合并提交 - 它们包含了自上次推送到仓库以来已经推送的相同代码。我想阻止这种情况,但无法弄清他是如何做到的 - 他说他唯一做的就是 git pull origin master
,但出于某种原因它会将远程代码拉下来作为他自己的代码。有任何想法吗?我想去用 tmate
检查他的终端。
git pull
的默认行为是合并。
将远程仓库的更改合并到当前分支中。在默认模式下,git pull 是 git fetch 后跟 git merge FETCH_HEAD 的简写。
https://git-scm.com/docs/git-pull
如果您想改变这种行为,可以添加 --rebase
(git pull --rebase
),或者直接配置 git 始终使用 rebase 实现所需的默认行为。
将以下内容添加到您的 .gitconfig
文件中。
[pull]
rebase = true
或者可以通过命令行配置:
git config --global pull.rebase true
git pull
命令中添加--rebase
或-r
参数,例如git pull origin -r master
。这样,将首先获取远程仓库的分支,然后将本地分支上的新提交变基到获取的头部。本地分支将始终与远程仓库的分支保持最新或领先状态。