我知道我可以这样做:
git subtree push --prefix server heroku master
推送我的项目的子树(在这种情况下,所有内容都在./server目录下)。
我可以执行以下操作来推送非主分支:
git push heroku somebranch:master
但我似乎无法做任何看起来像这样推动非主子树的组合:
git subtree push --prefix server heroku somebranch:master
我明白了:
'somebranch:master' does not look like a ref
我愿意这样做!
答案 0 :(得分:4)
在运行Git 2.7.1的计算机上,git subtree push
的文档说
split
(见下文)是否使用提供的<prefix>
,然后执行git push
将结果推送到存储库并参考。这可以用于将子树推送到远程存储库的不同分支。
在git subtree
的文档中几乎没有提到分支,并且没有提到分支的情况适合您的用例。
在行之间读取它看起来像源分支是你签出的任何东西:
git checkout somebranch
git subtree push --prefix server heroku master
确实你在评论中证实这是有效的。
答案 1 :(得分:2)
上面的答案最终会遇到问题。当其他人推动时。 您可以使用以下命令-我将其命名为别名-可以达到相同的目的,但允许多人部署。
git push heroku $(git subtree split --prefix=server $(git symbolic-ref --short -q HEAD)):master --force