进阶 2:push 的本质
在之前的内容里,我粗略地说过,push 指令做的事是把你的本地提交上传到中央仓库去,用本地的内容来覆盖掉远端的内容。这个说法其实是不够准确的,但 Git 的知识系统比较庞大,在你对 Git 了解比较少的时候,用「上传本地提交」来解释会比较好理解;而在你知道了 branch,并且明白了 branch 的具体含义以后,我就可以告诉你 push 到底是什么了。
push:把 branch 上传到远端仓库
实质上,push 做的事是:把当前 branch 的位置(即它指向哪个 commit)上传到远端仓库,并把它的路径上的 commits 一并上传。
例如,我现在的本地仓库有一个 master ,它超前了远程仓库两个提交;另外还有一个新建的 branch 叫 feature1,远程仓库还没有记载过它。具体大概像这样: