我怎么能把我的git回购的一部分推到Heroku?
我有一个已经在Github上的多模块应用程序。 它由两个模块组成,其中一个是Android应用程序,另一个是基于Rails的Web应用程序。 所以我的项目的目录结构是:
ProjectRoot | +-- web | +-- android | +-- .git
因此,我不能简单地cd
到ProjectRoot中,并将我的应用程序推送到Heroku,因为Rails应用程序的根文件夹是ProjectRoot/web
。 有没有办法将web
文件夹推送到Heroku? 如果我把网站变成一个git子模块,应该很容易做到这一点,但是我只有5个私人回购Git,我更喜欢只消耗1回购我的整个应用程序。
你可以使用git子树 。 它将以您的根目录为根目录生成一个新的提交树,并将其推送。
git subtree push --prefix web heroku master
完整的文档在这里 。
要安装它:
git clone git://github.com/apenwarr/git-subtree.git cd git-subtree sudo sh install.sh
git subtree
命令(内置,现在)是一个很好的方法来做到这一点。 如果你想推动一个分支的子树成为你的主人,你可以使用像这样的东西:
git push --force heroku `git subtree split --prefix web HEAD`:master
你也可以使用git分支而不是子文件夹。 如果你有git 1.7.2或者更新的版本,你可以简单地使用git checkout --orphan android
创build一个与你的主分支断开连接的分支(这里假设为web文件夹)。 一旦你检出了孤立分支,运行git rm -rf .
删除现有的文件,然后复制到您的Android特定的文件到现在空的根目录。
如果要为每个模块使用单独的文件夹,则可以将资源库克隆两次并使用以下结构:
ProjectRoot ├── android │ └── .git └── web └── .git