58

将本地 git 存储库的主分支推送到名为 origin withgit push origin master 或 with的远程存储库的主分支有什么区别git push origin

4

4 回答 4

62

git push和的默认操作自版本git push origin以来已更改:git1.7.11

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

  • 因为1.7.11git push默认情况下将当前分支推送到同名的远程分支。

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

于 2012-09-17T16:17:45.653 回答
35
git push origin master

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

git push origin

将所有分支推到原点

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

于 2012-09-17T15:29:51.423 回答
1

虽然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' 配置的值。

这个措辞(可以追溯到b2ed944push: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配置变量),否则会出错而不推送。

于 2021-03-27T13:48:11.197 回答
0
git push origin

git push origin 会将所有本地分支的更改推送到源远程的匹配分支。

git push origin master

git push origin master 会将更改从本地 master 分支推送到远程 master 分支。

于 2022-02-18T03:43:32.920 回答