如果我从回购A
进行git抓取到B
,则B
中的主分支无法更改 - 仅更改remotes/origin/master
和{{1让我想起它。
但现在我想做相反的事情 - 从git status
更新B
,例如从A
推送到A:master
。这样做的原因是此更新发生在ssh上,而B:remotes/origin/master
计算机具有公共密钥身份验证到A
计算机 - 但反之亦然。
我该怎么做?
答案 0 :(得分:9)
git fetch A
开始运行的 B
会将A
的所有当前分支存储在refs/remotes/A
中。由于您可以使用refspecs执行几乎所有操作,因此可以对git push
执行相同操作,但可以从A
开始并定位B
。
refspec有两部分,用分号分隔。在第一部分中,您可以选择要推送的内容。在这里,您需要所有当前分支,因此这是refs/heads/*
。
第二部分是你将它们存放在遥控器上的部分;在这里,您希望将它们存储在remotes/A/*
下,因此这是refs/remotes/A/*
。
将它们放在一起,使用以下命令将所有本地分支推送到相应的远程分支:
git push --force B refs/heads/*:refs/remotes/A/*