小编典典

没有指定分支的“git push”的默认行为

all

我使用以下命令推送到我的远程分支:

git push origin sandbox

如果我说

git push origin

这是否也会在我的其他分支中推送更改,还是只更新我当前的分支?我有三个分支masterproductionsandbox

文档对此git push不是很清楚,所以我想澄清一下。

以下git push命令准确更新了哪些分支和远程?

git push 
git push origin

origin上面是遥控器。

我知道这git push [remote] [branch]只会将该分支推送到远程。


阅读 121

收藏
2022-03-16

共1个答案

小编典典

您可以通过在 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
2022-03-16