git push origin和git push origin master之间有什么区别

时间:2012-09-17 15:28:24

标签: git git-push git-remote

将本地git存储库的主分支推送到名为origin的远程存储库的主分支({1}}是否有任何区别 或者使用git push origin master

3 个答案:

答案 0 :(得分:45)

git push版本git push origin以来,git1.7.11的默认操作已发生变化:

  • 1.7.11之前,git push默认情况下会推送同名远程存在的所有分支。

  • 由于1.7.11git push默认情况下会将当前分支推送到具有相同名称的远程分支。

在版本1.7.11之前和之后,可以使用push.default配置选项配置默认行为。此配置选项已在git版本1.6.3中引入。

答案 1 :(得分:25)

git push origin master

这只会将您的主分支推送到原点

git push origin

将所有分支推送到原点

更新 - 自编写此答案以来,Git的行为已发生变化。默认情况下,git push origin在Git> = 2.0上将当前分支推送到同名的匹配分支,但可以通过git config

覆盖此行为

答案 2 :(得分:1)

虽然 Git >=2.0 上的 git push origin 确实默认将当前分支推送到相同名称的匹配分支,但文档是错误的!
所述文档已通过 Git 2.32(2021 年第二季度,8 年后)修复:

请参阅 commit 4c8e3dcTaylor Blau (ttaylorr)(2021 年 3 月 8 日)。
(由 Junio C Hamano -- gitster --commit c6617d1 合并,2021 年 3 月 24 日)

<块引用>

Documentation/git-push.txt:正确的配置错误

报告人:Adam Sharafeddine
报道者:Fabien Terrani
签字人:Taylor Blau
审核人:乔纳森·尼德

<块引用>

在示例部分,git-push 表示“git push origin(man) 将当前分支推送到“{{1}”的值}'配置。

这个措辞(可以追溯到 b2ed944 (remote.origin.merge: switch default from , 2013-01-04, Git v2.0.0-rc0 -- merge) (push: switch默认从“push”到“matching”,2013-01-04)) 不正确。
没有像“simple”这样的配置。
这可能原本打算改为读取“remote.<name>.merge”。

确实,当 'branch.<name>.merge' 是 'push.default'(这是默认值,适用于每个“无需额外配置”的场景),如果分支的本地名称与“simple”不匹配。

更正这个长期存在的错字,以解决最近对该示例预期行为的一些混淆。

setup_push_upstream() 现在包含在其 man page 中:

<块引用>

branch.<name>.merge

无需额外配置,如果当前分支与当前分支同名,则将当前分支推送到已配置的上游(git push 配置变量),否则会在不推送的情况下出错。