我正在使用分叉式仓库,使用标准命名(我的分支是#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,即使它与我的本地分支名称不匹配?
答案 0 :(得分:2)
我已尝试将push.default设置为" current"和"简单" - 都不起作用。
正确的值为upstream
。 (simple
为upstream
加上一张支票,确保名称匹配以防止出现意外 - 这在此不起作用。)请参阅the manual:
upstream
- 将当前分支推回到其更改通常集成到当前分支(称为@{upstream}
)的分支。只有当您推送到通常从中拉出的相同存储库时(即中央工作流程),此模式才有意义。
无论如何,由于我明确设置了我的分支机构的远程和推送设置,我认为这样的默认设置是无关紧要的。
不确定branch.<name>.push
是否存在。 branch.<name>.remote
和branch.<name>.merge
是分支的上游,这是push.default
设置的重点。