git - `git push` 到底做了什么?

标签 git

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

  1. fetch 更新本地远程镜像
  2. merge 将本地分支与更新后的本地远程镜像 merge

但是 push 是否在幕后做了几件类似于 pull 的事情?

最佳答案

不是真的。

在非常技术性的意义上,是的,它做了很多事情,但不像 pull(你可以合理地做 fetchmerge 作为两个不同的 Action )push 所做的所有事情通常总是一起完成:

  1. 打包不在远程主机上的提交集
  2. 将打包的提交发送到远程主机
  3. 更新远程引用以指向您推送给它的提交

如果不同时执行#1 和#2,执行#3 就没有真正的意义 - 如果不执行#3,执行#1 和#2 也没有任何意义。

push 从不 merge - 你要么覆盖远程引用,要么你的推送失败。

关于git - `git push` 到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26668445/

相关文章:

git blame 一行修改多次?

linux - 我想在后台进程中使用 pos-receive 自动化我的 Angular 构建

git - 将 sublime text 3 设置为 git commit 文本编辑器

git - 可以通过提交添加私有(private)文件(未推送)吗?

java - 将公共(public) Maven 存储库用于库而不是本地的优点

git - kdiff3 完全从远程选择文件

git clone 由于远程端可能的存储库损坏而中止,即使内存设置已正确完成

git - 如何将 Drafts 推送到 Gerrit?

Git 列出不存在的 Remote

xcode - 如何从 Xcode 8 上的先前提交中恢复?