如何将我的git repo的一部分推送到Heroku?

Lam*_*bda 51 git heroku

我有一个已经在Github上的多模块应用程序.它由两个模块组成,其中一个是Android应用程序,另一个是基于Rails的Web应用程序.所以我的项目的目录结构是以下形式:

ProjectRoot
|
+-- web
|
+-- android
|
+-- .git
Run Code Online (Sandbox Code Playgroud)

因此,我不能简单地cd进入ProjectRoot并将我的应用程序推送到Heroku作为Rails应用程序的根文件夹ProjectRoot/web.有没有办法将web文件夹推送到Heroku?如果我将web变成一个git子模块,它应该很容易实现,但是我只在Git上有5个私人回购,我更喜欢只为我的整个应用程序使用1个回购.

Mic*_*ant 63

你可以使用git子树.它将以root身份生成一个新的提交树,并将其推送.

git subtree push --prefix web heroku master
Run Code Online (Sandbox Code Playgroud)

完整的文档在这里.

要安装它:

git subtree push --prefix web heroku master
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,`git subtree`现在是核心git的一部分(只要你的git版本是最新的,就不需要安装任何东西) (13认同)
  • 在这种情况下,您不能使用`subtree push`快捷方式,并且必须自己链接命令.例如:`git push heroku \`git subtree split --prefix web yourbranch \`:master` (5认同)

bro*_*okr 12

git subtree命令(在建,现在)是这样做的好方法.如果你想推动一个分支的子树成为你的主人,你可以使用类似的东西:

git push --force heroku `git subtree split --prefix web HEAD`:master