你如何推动一个Git分支(而没有其他分支)?

时间:2009-05-04 13:49:33

标签: git git-push

我正在开发一个本地git存储库。有两个分支masterfeature_x

我想将feature_x推送到远程仓库,但我不想在master分支上推送更改。

来自我的git push origin feature_x分支(feature_x分支的feature_x是否已存在于远程工作中?

我不想在我的盒子上测试这个,因为我现在无法推动掌握。

5 个答案:

答案 0 :(得分:349)

是的,请执行以下操作

git checkout feature_x
git push origin feature_x

答案 1 :(得分:65)

默认情况下git push更新所有远程分支。但是你可以配置git来只更新当前分支到它的上游。

git config push.default upstream

这意味着当您执行git push时,git将仅更新当前(已检出)分支。

其他有效选项包括:

  • nothing:除非明确指定refspec ,否则不要推送任何内容(错误输出)。这主要是针对那些希望通过始终明确避免错误的人。
  • matching:推送两端都具有同名的所有分支。 (Ver 1.7.11之前的默认选项)
  • upstream:将当前分支推送到上游 科。如果您要推送到通常从中拉出的相同存储库(即中央工作流),则此模式才有意义。 本地和远程分支无需具有相同的名称
  • tracking:已弃用,请改用upstream
  • current:将当前分支推送到接收端同名的远程分支。适用于中央和非中央工作流程。
  • simple:[自Ver 1.7.11起可用]在集中式工作流程中,像upstream一样工作,如果上游分支的名称与本地分支不同,则可以更加安全地拒绝推送。当您推送到与通常拉出的遥控器不同的遥控器时,请按current进行操作。这是最安全的选择,适合初学者。此模式已成为Git 2.0中的默认模式。

答案 2 :(得分:6)

Karthik Bose's answer之上的次要更新 - 您可以全局配置git,以影响所有工作区的行为:

git config --global push.default upstream

答案 3 :(得分:0)

更好的答案是

git config push.default current

upsteam 有效,但是当您在 origin 上没有分支时,您需要设置上游分支。将其更改为 current 将自动设置 upsteam 分支并立即推送该分支。

答案 4 :(得分:-2)

所以,让我们说你有一个本地分支foo,一个远程叫做origin和一个远程分支origin / master。

要将foo的内容推送到origin / master,首先需要设置其上游:

git checkout foo
git branch -u origin/master

然后你可以使用:

推送到这个分支
git push origin HEAD:master

在上一个命令中,您可以添加--force以将原始/主文件的整个历史记录替换为foo。