即使在阅读了这个问题之后: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?
答案 0 :(得分:63)
git push origin amd_qlp_tester
将为您效劳。如果只键入git push
,则当前分支的远程值是默认值。
push的语法如下所示 - git push <remote> <branch>
。如果查看.git/config
文件中的远程,您将看到一个条目[remote "origin"]
,它指定了存储库的URL。因此,在命令的第一部分,您将告诉Git在哪里找到此项目的存储库,然后您只需指定一个分支。
答案 1 :(得分:30)
如果您的本地分支和远程分支是相同的名称,那么您可以这样做:
git push origin branchName
当您的本地和远程分支名称不同时,您可以这样做:
git push origin localBranchName:remoteBranchName
答案 2 :(得分:8)
您链接的问题的答案都是关于配置git,以便您可以输入非常短的git push
命令并让它们执行您想要的任何操作。哪个好,如果你知道你想要什么以及如何在Git-Ese拼写,但你是git的新手! : - )
在您的情况下,Petr Mensik's answer是(正好,“a”)正确的。原因如下:
命令git push remote
位于.git/config
文件中,以查找名为“remote”(例如origin
)。配置文件列出:
ssh://hostname/path
)git fetch remote
当你第一次克隆回购时 - 每当git为其中一些设置默认值时。 URL是你从中克隆的,其余的,如果设置或未设置,都是“合理的”默认值......或者,嗯,是他们?
这些问题是人们随着时间的推移改变了他们对“合理”的看法。所以现在(取决于你的git版本以及你是否详细配置了东西),git可能会打印很多关于将来更改默认值的警告。添加“分支推送”的名称 - amd_qlp_tester
- (1)将其关闭,(2)仅推送一个分支。
如果你想更方便地推动,你可以用:
git push origin
甚至:
git push
但是,这是否符合您的要求,取决于您是否同意“早期git作者”原始默认值是合理的,或者“后来的git作者”认为原始默认值是不合理的。因此,当您想要完成所有配置工作(最终)时,请查看您链接到的问题(和答案)。
首先是名称origin/amd_qlp_tester
:它实际上是一个本地实体(保存在您的仓库中的名称),即使它被称为“远程分支”。这是git最好的猜测“amd_qlp_tester
在那里”。 Git updates it when it can。
答案 3 :(得分:0)
我想添加一个更新的答案-现在我已经使用git一段时间了,我发现我经常使用以下命令进行任何推送(以原始问题为例):
git push origin amd_qlp_tester
-推送到原点中名为amd_qlp_tester的分支git push -u origin amd_qlp_tester
-与上一个相同,但是将上游链接设置为将本地分支链接到远程分支,以便下次您可以使用git push/pull
(如果尚未链接)(只需执行一次) )。git push
-设置上游后,就可以使用此较短的版本。 注意 -u
选项是--set-upstream
的缩写-它们是相同的。