如何使用非主分支将子树推送到heroku

时间:2016-02-22 21:48:19

标签: git heroku

我知道我可以这样做:

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

我愿意这样做!

2 个答案:

答案 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