我的远程同事总是在没有实际原因的情况下创建虚拟合并提交-它们包含的代码与自从他上次提取以来已经被推送到存储库的代码完全相同。
我想避免这种情况,但无法真正弄清楚他是如何做到的-他说他唯一要做的是git pull origin master
,由于某种原因,它会将远程代码作为自己的代码来提取。任何想法怎么可能发生?我想我会去tmate
到他的终端检查自己。
答案 0 :(得分:0)
本地分支有一个或多个尚未推送并合并到远程存储库中的分支的提交,与此同时,远程存储库中的分支具有一个或多个尚未提取的提交,并且合并到本地分支。这两个分支是分开的。
要防止创建合并提交,请将--rebase
或-r
添加到git pull
,git pull origin -r master
中。这样,将首先获取远程存储库中的分支,然后将本地分支上的新提交重新基于所获取的头。本地分支将始终是最新的,或者比远程存储库中的分支更早。
答案 1 :(得分:0)
git pull
的默认行为是合并。
将来自远程存储库的更改合并到当前分支中。在默认模式下,git pull是git fetch的简写,其次是git merge FETCH_HEAD。
https://git-scm.com/docs/git-pull
要进行更改,您可以添加--rebase
(git pull --rebase
),或者简单地将git配置为始终根据需要更改默认值。
将以下内容添加到您的.gitconfig
。
[pull]
rebase = true
或从命令行进行配置:
git config --global pull.rebase true