如何解决没有指定分支的“git push”的默认行为
您可以通过在 git 配置中设置 push.default 来控制默认行为。从git-config(1) 文档:
push.default
定义如果命令行上没有给出 refspec,远程中没有配置 refspec,并且命令行上给出的任何选项都没有暗示 refspec,则 git push 应该采取的操作。可能的值为:
-
nothing
: 不要推任何东西 -
matching
: (Git 2.0 之前的默认值) 推送所有匹配的分支
在两端具有相同名称的所有分支都被认为是匹配的。
-
upstream
:将当前分支推送到其上游分支(tracking
不推荐使用上游的同义词) -
current
: 将当前分支推送到同名分支 -
simple
: (Git 1.7.11 新增,Git 2.0 后默认) 喜欢上游,但如果上游分支的名称与本地分支不同,则拒绝推送
这是最安全的选择,非常适合初学者。
简单、当前和上游模式适用于那些在完成工作后想要推出单个分支的人,即使其他分支尚未准备好推出
命令行示例:
查看当前配置:
git config --global push.default
要设置新配置:
git config --global push.default current
解决方法
我使用以下命令推送到我的远程分支:
git push origin sandbox
如果我说
git push origin
这是否也会在我的其他分支中推送更改,还是只更新我当前的分支?我有三个分支master
:production
和sandbox
。
文档对此git push
不是很清楚,所以我想澄清一下。
以下git push
命令准确更新了哪些分支和远程?
git push
git push origin
origin
上面是遥控器。
我知道这git push [remote] [branch]
只会将该分支推送到远程。