git会自动推送所有分支的提交吗?

时间:2016-06-22 08:49:56

标签: git version-control dvcs

从我找到的一些答案(example),我明白如果我git push,只会推送当前的分支提交。但是当我键入' git push`时,我得到以下输出(部分):

. . . 
Writing objects: 100% (12/12), 999 bytes | 0 bytes/s, done.
Total 12 (delta 4), reused 0 (delta 0)
To https://gitlab.bla-bla.git
   773f335..db28181  doedev_userAgentTest -> doedev_userAgentTest
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitlab.bla-bla.git'
. . .

我当前的分支是doedev_userAgentTest

$ git status
On branch doedev_userAgentTest

所以我从上面的输出中理解的是,当前分支的提交是正确的(我确认我提交的文件实际上是在远程仓库中)但是有一个尝试推送master分支但它失败了

所以我的问题是(在推向掌握时忽略错误):

  1. 我是否正确地认为,尽管我在不同的分支上推动这一事实,仍然有很大的推动力?
  2. 如果答案是肯定的,我该如何仅从当前分支推送?
  3. 注意:我确实远程拥有上述所有分支。

2 个答案:

答案 0 :(得分:2)

Git从分支机构推送它有一个远程分支。

要推送当前分支,请使用以下语法:

git push origin mybranch

如果您的遥控器未命名为origin,请使用正确的名称。

此外,请注意,此行为取决于您的git配置。更多信息请访问:Does "git push" push all commits from other branches?

答案 1 :(得分:1)

没有额外选项的git push的行为取决于git配置。

主人的推送被拒绝,因为远程主人已被其他人更新。您可以先运行git pull origin --rebase master来更新本地主人。

如果您只想推送主人,git push origin master:master总是可以安全运行。

更新:如果您只想推送doedev_userAgentTest,则可以运行git push origin doedev_userAgentTest:doedev_userAgentTest。如果签出doedev_userAgentTestgit push origin HEAD:doedev_userAgentTest也可以。在前一种情况下,:doedev_userAgentTest可以省略。