什么`git push`在引擎盖下做什么?

时间:2014-10-31 06:05:34

标签: git

所以我刚刚了解到git pull做了几件事

  1. fetch更新本地远程镜像
  2. merge将本地分支与更新的本地远程镜像合并
  3. push呢?它会做几件与pull类似的事情吗?

2 个答案:

答案 0 :(得分:4)

不是。

从技术意义上讲,是的,它可以做多件事,但不像pull(你可以合理地做fetchmerge作为两个不同的行为)所有的东西push通常总是一起完成:

  1. 打包远程主机
  2. 上提交的一组提交
  3. 将打包的提交发送到远程主机
  4. 更新远程引用以指向您推送到它的提交
  5. 做#3在没有做#1和#2的情况下真的没有意义 - 做#1和#2在没有做#3的情况下也不会做任何事情。

    push永远不会合并 - 您要么覆盖远程引用,要么推送失败。

答案 1 :(得分:1)

你可以re一下git的官方文档 http://git-scm.com/docs/git-push
在那里你可以看到,

  

git push

不是一步一步做几件事