我有两个分支:
master
demo_master
两个遥控器:
origin
demo_origin
如何配置git以便在发出git push
命令时自动将 master发送到origin / master 并将 demo_master发送到demo_origin / master ?
我试图通过
达到预期的效果git push --set-upstream demo_origin demo_master:master
但是,每当我尝试使用git push
时,git都会发出以下错误:
致命:当前分支的上游分支与 您当前分行的名称。推到上游分支 远程,使用
git push demo_origin HEAD:master
要推送到遥控器上同名的分支,请使用
git push demo_origin demo_master
答案 0 :(得分:1)
您需要set the push.default
configuration正确:
定义在未明确给出refspec的情况下应采取的操作
git push
。不同的值非常适合特定的工作流程;例如,在纯粹的中央工作流程中(即获取源等于推送目的地),upstream
可能就是你想要的。
使用Git 2.0,默认情况下此设置设置为simple
,以便初学者轻松使用:
simple
- 在集中式工作流程中,如上游分支的名称与本地分支的名称不同,就像上游一样工作,增加安全性以拒绝推送。当推送到与您通常拉出的遥控器不同的遥控器时,请作为当前工作。这是最安全的选择,适合初学者。
正如选项所说,Git将拒绝推送到具有不同名称的分支。为了实现这一目标,您需要将其设置为upstream
:
upstream
- 将当前分支推回到其更改通常集成到当前分支(称为@{upstream}
)的分支。只有当您推送到通常从中拉出的相同存储库时(即中央工作流程),此模式才有意义。
所以,执行git config -g push.default upstream
,然后它应该可以正常使用git push --set-upstream demo_origin master:demo_master
。 (请注意,本地分支位于local:remote
)
答案 1 :(得分:1)
在 Git 2.0 中,此设置默认设置为简单,以方便初学者:
simple
- 在集中式工作流程中,如果上游分支的名称与本地分支名称不同,则像上游一样工作,并增加了安全性以拒绝推送。
推送到与您通常拉出的遥控器不同的遥控器时,请作为当前使用。这是最安全的选择,适合初学者。
已使用 Git 2.33(2021 年第 3 季度)重写,添加了关于 git push
的说明。
参见 commit 90cfb26、commit 7e6d72b、commit b8e8b98、commit 6b010c8、commit d099b9c、commit 3b9fd83、commit 050f76b(2021 年 5 月 31 日)来自Felipe Contreras (felipec
)。
(2021 年 7 月 13 日于 Junio C Hamano -- gitster
-- 被 commit 07e230d 合并)
doc
:推送:正确解释default=simple
抄送:以利亚纽伦
签字人:Felipe Contreras
简单模式仅在集中式工作流上工作时会出现 barfs,并且没有配置同名的上游分支。
git config
现在包含在其 man page 中:
simple
将同名的当前分支推送到远程。
如果您正在处理集中式工作流(推送到您从中拉取的同一个存储库,通常是 origin
),那么您需要配置一个同名的上游分支。
此模式是 Git 2.0 以来的默认模式,是最安全的选项,适用于 初学者。
这就解释了为什么默认设置不适合您的情况,而您需要,如上所述:
git config -g push.default upstream,
git push --set-upstream demo_origin master:demo_master
注意第二次推送只针对第一次推送:一旦上游分支被设置,一个简单的git push
(无参数)就足够了。
答案 2 :(得分:0)
在master
本地分支上使用git push origin -u master
并在demo_master
分支上使用git push demo_origin -u master
另一种解决方案是使用来自git branch -u origin/master
分支的master
和来自git branch -u demo_origin/master
分支的demo_master
。
https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches