git推送到特定分支

ejk8hzay  于 2023-03-06  发布在  Git
关注(0)|答案(4)|浏览(239)

即使在阅读了这个问题之后:git-push-current-branch,我仍然很难弄清楚应该如何编写git push命令。正如问题链接中提到的,文档中没有明确说明。
我想使用我的“真实的世界”例子。下面是我在分支的顶层运行git status命令时看到的结果:
在分支amd_qlp_tester上
您的分支比'learn/learn'领先5个提交。
等等。
我的分支名称是amd_qlp_tester,但它是从主分支“分支”出来的(如果我用错了术语,那是因为我的SVN背景)。
那么我该如何表达我的push命令呢?
是否为以下任何一项?

git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
k97glaaz

k97glaaz1#

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

git push origin branchName

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

git push origin localBranchName:remoteBranchName
acruukt9

acruukt92#

git push origin amd_qlp_tester将为您工作。如果您只键入git push,则当前分支的远程是默认值。
push的语法是-git push <remote> <branch>.如果你查看你的远程文件.git/config,你会看到一个[remote "origin"]条目,它指定了仓库的url.所以,在命令的第一部分你会告诉Git在哪里找到这个项目的仓库,然后你只需要指定一个分支.

bybem2ql

bybem2ql3#

你所链接到的问题答案都是关于配置git,让你可以输入很短的git push命令,让它们做你想做的任何事情。如果你知道你想要什么,以及如何在Git-Ese中拼写,这是很棒的,但你是git的新手!:-)
在您的例子中,Petr Mensik's answer是正确的(好吧,"a"),原因如下:
命令git push *remote*在您的.git/config文件中查找命名为"remote"的(例如,origin)。

  • 远程"存在"的位置(URL方式)(例如,ssh://*hostname*/path``)
  • 如果不同,推力将到达何处
  • 如果您没有指定要推送的分支,将推送哪些分支
  • 运行git fetch *remote*时获取什么

当你第一次克隆repo的时候--无论何时--git都为其中一些设置了默认值。URL是你克隆的任何东西,其余的,不管设置还是不设置,都是"合理的"默认值......或者,嗯,它们是吗?
问题是随着时间的推移,人们已经改变了对什么是"合理的"的看法,所以现在(取决于你的git版本和你是否已经详细配置了),git可能会打印出很多关于默认值在未来更改的警告。添加"要推送的分支"的名称-amd_qlp_tester-(1)关闭它,(2)只推送那一个分支。
如果您想更方便地推动,您可以使用:

git push origin

或者甚至:

git push

但这是否符合你的要求,取决于你是否同意"早期git作者"的观点,即原始默认值是合理的,还是"后期git作者"的观点,即原始默认值是不合理的。所以,当你想完成所有的配置工作时(最终),请查看你链接到的问题(和答案)。
首先,对于名称origin/amd_qlp_tester:这实际上是一个本地实体(存储在存储库中的名称),尽管它被称为"远程分支"。这是git对"amd_qlp_tester在哪里"的最佳猜测。

gr8qqesn

gr8qqesn4#

我想补充一个更新的答案--现在我已经使用git一段时间了,我发现我经常使用下面的命令来做任何推送(以最初的问题为例):

  • git push origin amd_qlp_tester-推送到远程分支amd_qlp_tester上位于远程分支origin中的分支。
  • git push -u origin amd_qlp_tester-与上一个相同,但设置了将本地分支链接到远程分支的上行流,以便下次您可以在尚未链接的情况下使用git push/pull(只需执行一次)。
  • git push-一旦你设置了上游,你就可以只使用这个较短的版本。
    注意-u选项是--set-upstream的简化版本-它们是相同的。

相关问题