git推送到特定分支

cod*_*der 79 git version-control push

即使在阅读了这个问题之后:git-push-current-branch,我仍然很难弄清楚我应该如何编写我的git push命令.正如问题链接中所提到的,文档中并不清楚.

我想用我的'真实世界'的例子.以下是我在git status分支顶层执行命令时看到的内容:

在分支amd_qlp_tester上

您的分支在5次提交之前超过'origin/amd_qlp_tester'.

等等...

所以我的分支名称是,amd_qlp_tester但它从主分支"分支"(如果由于我的SVN背景我的条款错误).但是还有名字`origin/amd_qlp_testser'

那我怎么说出我的推送命令呢?

是这些中的任何一个:

git push origin/amd_qlp_tester?
git push origin amd_qlp_tester?
git push amd_qlp_tester?
git push origin?
git push?
Run Code Online (Sandbox Code Playgroud)

Pet*_*sik 74

git push origin amd_qlp_tester会为你工作.如果只键入git push,则当前分支的远程值是默认值.

push的语法看起来像这样 - git push <remote> <branch>.如果查看远程.git/config文件,您将看到一个[remote "origin"]指定存储库URL 的条目.因此,在命令的第一部分中,您将告诉Git在哪里查找此项目的存储库,然后您只需指定一个分支.


Imr*_*bar 65

如果您的本地分支和远程分支是相同的名称,那么您可以这样做:

git push origin branchName
Run Code Online (Sandbox Code Playgroud)

当您的本地和远程分支名称不同时,您可以这样做:

git push origin localBranchName:remoteBranchName
Run Code Online (Sandbox Code Playgroud)

  • 这非常有帮助,很难找到:) (6认同)

tor*_*rek 9

您链接到的问题的答案都是关于配置git,以便您可以输入非常短的git push命令并让它们执行您想要的任何操作.哪个好,如果你知道你想要什么以及如何在Git-Ese拼写,但你是git的新手!:-)

在你的情况下,Petr Mensik的回答是(好的,"a")正确的答案.原因如下:

该命令根据您的文件来查找名为"remote"(例如,).配置文件列出:git push remote.git/configorigin

  • 远程"生活"的地方(URL-wise)(例如)ssh://hostname/path
  • 推动去哪里,如果不同的话
  • 如果你没有说什么分支推进,那会被推动
  • 你跑步时得到什么 git fetch remote

当你第一次克隆repo时 - 每当git为其中一些设置默认值时.URL是你克隆的任何东西,其余的,如果设置或未设置,都是"合理的"默认值......或者,嗯,吗?

这些问题是人们随着时间的推移改变了他们对"合理"的看法.所以现在(取决于你的git版本以及你是否详细配置了东西),git可能会打印很多关于将来更改默认值的警告.添加"分支推送"的名称 - amd_qlp_tester- (1)将其关闭,(2)仅推送一个分支.

如果你想更方便地推动,你可以这样做:

git push origin
Run Code Online (Sandbox Code Playgroud)

甚至:

git push
Run Code Online (Sandbox Code Playgroud)

但是,这是否符合你的要求,取决于你是否同意"早期git作者"原始默认值是合理的,或者"后来的git作者"认为原始默认值是不合理的.因此,当您想要完成所有配置工作(最终)时,请查看您链接到的问题(和答案).

至于名字origin/amd_qlp_tester首先:它实际上是一个本地实体(一个名称保存在你的回购中),即使它被称为"远程分支".这是git最好的猜测"在哪里amd_qlp_tester".Git会尽可能地更新它.