将分支A上的“推”更改为同一git仓库中的另外两个分支

时间:2016-05-11 03:33:59

标签: git github version-control

有没有办法将某个分支的更改推送到同一个仓库中的其他分支,而不是推送到远程仓库?

理由是我想避免签出其他分支然后为其他分支运行合并

通常,我会这样做

git commit -am "making changes to branch c"
git checkout a
git merge c
git checkout b
git merge c

我宁愿不必检查其他分支,只是将“更改”从c推送到其他分支。

类似的东西:

git commit -am "making changes to branch c"
git push local a b   // not right at all

希望它有意义。

我在网上看到的唯一内容是如果它是一个单独的仓库(例如远程仓库),如何推送到另一个分支。

1 个答案:

答案 0 :(得分:1)

是的,你可以这样做。要知道的诀窍是"遥控" named .指的是您自己的本地存储库。 1 因此:

git push . HEAD:a HEAD:b

或:

git push . c:a c:b

(假设HEAD命名与c相同的提交)这样做。请注意,对a和/或b的调整必须是快进,如任何遥控器所要求的那样。您可以强制推送,但这与任何遥控器具有相同的效果(即丢弃一些提交:使用--force推送与使用git reset非常相似。)

1 这自然是因为任何路径(例如git push /some/where/over/there)都被视为文件URL,而.是路径,{{{ 1}}表示"当前目录",推送从repo的顶部开始,所以"其他"回购就在我们的地方。