代码之家  ›  专栏  ›  技术社区  ›  Rafael Mueller

如何只推一个git分支(而不推其他分支)?

  •  219
  • Rafael Mueller  · 技术社区  · 15 年前

    我正在处理本地Git存储库。有两个分支, master feature_x .

    我想推 特征X 到远程回购,但我不想在 主人 分支机构。

    将A git push origin feature_x 从我 特征X 分公司(分支) 特征X 远程)工作上已存在分支?

    我不想在我的盒子上测试这个,因为我现在不能推给大师。

    4 回复  |  直到 9 年前
        1
  •  344
  •   cpjolicoeur    15 年前

    是的,只需执行以下操作

    git checkout feature_x
    git push origin feature_x
    
        2
  •  64
  •   Karthik Bose    9 年前

    默认情况下 git push 更新所有远程分支。但是,您可以配置git,使其仅将当前分支更新到其上游。

    git config push.default upstream
    

    这意味着在执行git push时,git将只更新当前(签出)分支。

    其他有效选项包括:

    • nothing :除非 显式给出了refspec . 这主要是针对那些希望总是直截了当地避免错误的人。
    • matching :推动所有具有 同名 两端。(1.7.11版之前的默认选项)
    • upstream :将当前分支推到其上游 分支机构。只有当您推送到通常会从中提取的同一个存储库(即 中心工作流 ) 不需要同名 用于本地和远程分支。
    • tracking :已弃用,请使用 上游 相反。
    • current :将当前分支推送到 同名 在接收端。在中心工作流和非中心工作流中工作。
    • simple :[从1.7.11版开始提供]在集中工作流中,工作方式如下 上游 如果上游分支的名称与本地分支的名称不同,则添加拒绝推送的安全性。当推到一个与你通常拉的遥控器不同的遥控器时,按 现在的 .这是最安全的选择,适合初学者。此模式已成为Git2.0中的默认模式。
        3
  •  6
  •   Community CDub    7 年前

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

    git config --global push.default upstream
    
        4
  •  -2
  •   MathKid    10 年前

    假设您有一个本地分支foo,一个称为origin的远程分支和一个远程分支origin/master。

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

    git checkout foo
    git branch -u origin/master
    

    然后您可以使用以下方法推到此分支:

    git push origin HEAD:master
    

    在最后一个命令中,您可以添加--force来用foo替换源站/master的整个历史记录。