如果甲、乙同时改了同一个分支的代码,甲先提交了代码,乙直接提交会报错,显示被拒绝。此时需要先执行git pull
,拉取最新的代码,但会在git的提交记录里面新增一条merge记录,如图:
image.png
产生merge记录的原因是git push
等同于git fetch
和 git merge
两个命令
使用 git pull --rebase
可以在拉取远程更改时避免创建合并提交,保持线性记录,这个命令会将你的本地更改在远程更改之上重新应用,从而保持提交历史的线性,避免了merge记录。
默认git pull的时候,使用rebase的模式
全局配置:
git config --global pull.rebase true
单个仓库配置:
git config pull.rebase true
通过以上配置,当你执行 git pull 时,Git 将默认使用 rebase 而不是 merge。这有助于保持更线性的项目历史记录。
默认git pull的时候,取消使用rebase的模式
全局配置:
git config --global pull.rebase true
单个仓库配置:
git config pull.rebase true