git pull是会有merge操作的,那为什么git push不带merge操作?

RT。
我知道git pull 等于 git fetch+git merge,VCS中查看log可以看到每次pull都会有merge动作。
git push为什么没有merge的操作?pull和push不是相对的吗?

阅读 16.4k
3 个回答

如你所说git pull
相当于做了以下操作

git fetch origin master
git log -p master..origin/master
git merge origin/master

那git push为什么没有merge的操作?pull和push不是相对的吗?

相对的概念是你自己定义的吧,但凡指令没有相对一说,git push 没有自动merge的操作,想必你也知道,但若是有人在这之前做了提交,它会提示你先更新本地仓库,也就是git fetch或者git pull,你git pull 的时候不就把你自己的给merge了,所以你每次提交的都是现在版本库中要求最干净的,你可以理解为总版本库也是一个人,它那里会自动merge所有的代码,但是它搞不定的就需要你来帮它merge,你非要说有个相对的指令的话,那我认为这个就类似了

git push --force

push后提交代码到你自己的分支,又不是合并。何来merge

我理解啊,push会改变公共资源,影响更大。你万一push错误的代码,别人也会收到影响。
而pull只改你本地的。影响较小。
还有如果你用idea家的编辑器,push之前如果能merge好像会直接提示你。让你确认。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进