一直以来对git push
与git pull
命令的默认行为感觉混乱
git push
通常对于一个本地的新建分支,例如git checkout -b develop
, 在develop分支commit了代码之后,如果直接执行git push
命令,develop分支将不会被push到远程仓库(但此时git push
操作有可能会推送一些代码到远程仓库,这取决于我们本地git config配置中的push.default
默认行为,下文将会逐一详解)。
因此我们至少需要显式指定将要推送的分支名,例如git push origin develop
,才能将本地新分支推送到远程仓库。
当我们通过显式指定分支名进行初次push操作后,本地有了新的commit,此时执行git push
命令会有什么效果呢?
如果你未曾改动过git config中的push.default
属性,根据我们使用的git不同版本(Git 2.0之前或之后),git push
通常会有两种截然不同的行为:
- develop分支中本地新增的commit被push到远程仓库
- push失败,并收到git如下的警告