有没有办法将某个分支的更改推送到同一个仓库中的其他分支,而不是推送到远程仓库?
理由是我想避免签出其他分支然后为其他分支运行合并
通常,我会这样做
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
希望它有意义。
我在网上看到的唯一内容是如果它是一个单独的仓库(例如远程仓库),如何推送到另一个分支。
答案 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的顶部开始,所以"其他"回购就在我们的地方。