如何让git config尊重分支远程推送设置

时间:2018-02-20 19:17:46

标签: git git-branch

我正在使用分叉式仓库,使用标准命名(我的分支是#34;起源",上游是"上游")。

我想设立两个本地分支机构,一个名为" master"跟踪上游/主人,另一个名为" my-forked-master"跟踪起源/主人。

我希望git能够记住推送的位置,这样当我在my-forked-master分支上时,我只需输入" git push"将git推送到origin / master。

我的.git / config文件中有这个:

[branch "my-forked-master"]
    remote = origin
    merge = refs/heads/master
    push = refs/heads/master
[branch "master"]
    remote = upstream
    merge = refs/heads/master

但是当我输入" git push"在my-forked-master分支中,git在origin / my-forked-master创建一个新的远程分支。我已经尝试将push.default设置为" current"和"简单" - 都不行。无论如何,因为我明确设置了我的分支机构的远程和推送设置,我认为这样的默认值是无关紧要的。 (他们似乎并不相关 - "简单"触发关于不匹配的分支名称的错误。)

如何让git服从.git / config中的内容并简单地推送到origin / master,即使它与我的本地分支名称不匹配?

1 个答案:

答案 0 :(得分:2)

  

我已尝试将push.default设置为" current"和"简单" - 都不起作用。

正确的值为upstream。 (simpleupstream加上一张支票,确保名称匹配以防止出现意外 - 这在此不起作用。)请参阅the manual

  

upstream - 将当前分支推回到其更改通常集成到当前分支(称为@{upstream})的分支。只有当您推送到通常从中拉出的相同存储库时(即中央工作流程),此模式才有意义。

  

无论如何,由于我明确设置了我的分支机构的远程和推送设置,我认为这样的默认设置是无关紧要的。

不确定branch.<name>.push是否存在。 branch.<name>.remotebranch.<name>.merge是分支的上游,这是push.default设置的重点。