“git push” 命令会将其他分支的所有提交都推送吗?

30

如果我在本地仓库中有许多未推送的提交分布在许多分支中,如果我键入 git push,会发生什么?所有这些提交都会被推送吗,还是只有属于当前分支的提交被推送?


可能是git push multiple branches from multiple commits的重复问题。 - Oliver Charlesworth
2个回答

32

不,git push 仅将当前本地分支中的提交推送到您在命令中指定的远程分支。

您可以通过设置 --all 参数告诉 git 推送所有分支。

请参阅命令说明


18

还取决于您的推送策略(git config push.default

正如我在" git - push current vs. push upstream (tracking) "中解释的那样,只有“匹配”策略才会推送除当前分支以外的更多内容。

推送两端具有相同名称的所有分支。
  这使得您要推送到的存储库记住将被推出的分支集合(例如,如果您总是在那里推送maintmaster 而没有其他分支,则您要推送到的存储库将具有这两个分支,并且您的本地maint master 将被推送到那里)。

采用此策略,只需简单的git push即可推送所有(匹配的)分支。
如果没有该策略,则需要使用git push --all 强制 推送所有分支。


@Honey 一个 git push --all 命令,通过推送所有分支,也会推送所有提交。 - VonC
甚至在分离的头部提交? - mfaani
1
@Honey No:如此所示(https://dev59.com/8lsV5IYBdhLWcg3w0xsK),分离的 HEAD 不会成为 push 的一部分。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接