将本地 git 存储库的主分支推送到名为 origin withgit push origin master
或 with的远程存储库的主分支有什么区别git push origin
?
4 回答
git push
和的默认操作自版本git push origin
以来已更改:git
1.7.11
之前
1.7.11
,git push
默认推送所有远程存在的同名分支。因为
1.7.11
,git push
默认情况下将当前分支推送到同名的远程分支。
在 version 之前和之后1.7.11
,可以使用push.default
配置选项配置默认行为。此配置选项已在git
版本中引入1.6.3
。
git push origin master
这只会将您的主分支推送到原点
git push origin
将所有分支推到原点
更新 - 自编写此答案以来,Git 的行为发生了变化。 git push origin
默认情况下,在 Git >=2.0 上会将当前分支推送到同名的匹配分支,但可以通过以下方式覆盖此行为git config
虽然git push origin
在 Git >=2.0 上确实默认将当前分支推送到同名的匹配分支,但文档是错误的!
所述文档已使用 Git 2.32(2021 年第二季度,8 年后)修复:
请参阅Taylor Blau ( ) 的提交 4c8e3dc(2021 年 3 月 8 日)。(由Junio C Hamano 合并 -- --在提交 c6617d1中,2021 年 3 月 24 日)ttaylorr
gitster
Documentation/git-push.txt
: 正确的配置错误报告人:Adam Sharafeddine
报告人:Fabien Terrani
签字人:Taylor Blau
审核人:Jonathan Nieder
在“示例”部分中,
git-push
表示 'git push origin
' ( man )将当前分支推送到 'remote.origin.merge
' 配置的值。这个措辞(可以追溯到b2ed944(
push
:switch default from , 2013-01-04, Git v2.0.0-rc0 -- merge)(push: switch default from "matching
" to "simple
", 2013-01-04))是不正确。
没有'remote.<name>.merge
'这样的配置。
这可能原本打算改为“branch.<name>.merge
”。实际上,当 '
push.default
' 是 'simple
' (这是默认值,并且根据“无需额外配置”适用于此场景)时,setup_push_upstream()
如果分支的本地名称与 ' ' 不匹配,则会死掉branch.<name>.merge
。更正这个长期存在的错字,以解决最近对该示例预期行为的一些混淆。
git push
现在在其手册页中包含:
git push origin
:在没有额外配置的情况下,如果当前分支与当前分支同名,则将当前分支推送到配置的上游(
branch.<name>.merge
配置变量),否则会出错而不推送。
git push origin
git push origin 会将所有本地分支的更改推送到源远程的匹配分支。
git push origin master
git push origin master 会将更改从本地 master 分支推送到远程 master 分支。