Как я могу нажать часть моего репозитория git на Heroku?
У меня есть многомодульное приложение, которое уже находится в Github. Он состоит из двух модулей, один из которых - приложение для Android, а другое - веб-приложение на основе Rails. Таким образом, структура моего проекта находится в форме:
ProjectRoot
|
+-- web
|
+-- android
|
+-- .git
В качестве такового я не могу просто cd
в ProjectRoot и нажимать мое приложение на Heroku, так как корневая папка приложения Rails ProjectRoot/web
. Есть ли способ нажать папку web
на Heroku? Если я превращу веб-сайт в под-модуль git, это должно быть легко сделать, но тогда у меня есть только 5 частных репозиториев на git, и я предпочитаю использовать только 1 репо для всего моего приложения.
Ответы
Ответ 1
Вы можете использовать git поддерево. Он сгенерирует новое дерево фиксации с вашим каталогом с правами root и нажимает его.
git subtree push --prefix web heroku master
Полная документация здесь.
Чтобы установить его:
git clone git://github.com/apenwarr/git-subtree.git
cd git-subtree
sudo sh install.sh
Ответ 2
Команда git subtree
(встроенная, теперь) - хороший способ сделать это. Если вы хотите наложить поддерево ветки, чтобы стать вашим хозяином, вы можете использовать что-то вроде:
git push --force heroku `git subtree split --prefix web HEAD`:master
Ответ 3
Вы также можете использовать ветки git вместо подпапок. Если у вас есть git 1.7.2 или новее, вы можете просто сделать git checkout --orphan android
для создания ветки, которая отключена от основной ветки (предполагается, что это папка в Интернете). После того, как вы проверили сиротскую ветвь, запустите git rm -rf .
, чтобы удалить существующие файлы, прежде чем копировать файлы вашего Android в пустую корневую директорию.
Если вы хотите использовать отдельные папки для каждого модуля, вы можете дважды клонировать репозиторий и использовать эту структуру:
ProjectRoot
├── android
│ └── .git
└── web
└── .git