将本地git存储库的主分支推送到名为origin的远程存储库的主分支({1}}是否有任何区别
或者使用git push origin master
?
答案 0 :(得分:45)
自git push
版本git push origin
以来,git
和1.7.11
的默认操作已发生变化:
在1.7.11
之前,git push
默认情况下会推送同名远程存在的所有分支。
由于1.7.11
,git 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 4c8e3dc 的 Taylor 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
配置变量),否则会在不推送的情况下出错。