Как я могу перенести часть моего git репо в Heroku? - PullRequest
46 голосов
/ 12 мая 2011

У меня есть мультимодульное приложение, которое уже есть на Github. Он состоит из двух модулей, один из которых - приложение для Android, а другой - веб-приложение на основе Rails. Таким образом, структура каталога моего проекта имеет вид:

ProjectRoot
|
+-- web
|
+-- android
|
+-- .git

Таким образом, я не могу просто cd войти в ProjectRoot и перенести мое приложение в Heroku, поскольку корневая папка приложения Rails - ProjectRoot/web. Есть ли способ отправить папку web в Heroku? Если я превращу веб в подмодуль git, это будет легко сделать, но тогда у меня есть только 5 частных репозиториев на Git, и я предпочитаю использовать только 1 репо для всего моего приложения.

Ответы [ 3 ]

58 голосов
/ 12 мая 2011

Вы можете использовать git subtree push. Он сгенерирует новое дерево коммитов с вашим каталогом в качестве root и отправит его.

git subtree push --prefix web heroku master

Полная документация здесь .

11 голосов
/ 19 января 2016

Команда git subtree (встроенная, сейчас) является хорошим способом сделать это. Если вы хотите выдвинуть поддерево ветви, чтобы стать вашим хозяином, вы можете использовать что-то вроде:

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

4 голосов
/ 12 мая 2011

Вы также можете использовать ветки git вместо подпапок.Если у вас git 1.7.2 или новее, вы можете просто сделать git checkout --orphan android, чтобы создать ветку, которая отключена от вашей основной ветки (здесь предполагается, что это веб-папка).После того, как вы извлекли сиротскую ветвь, запустите git rm -rf ., чтобы удалить существующие файлы, прежде чем копировать в свои специфичные для Android файлы в теперь пустой корневой каталог.

Если вы хотите использовать отдельные папки для каждого модуля, выможет дважды клонировать хранилище и использовать эту структуру:

ProjectRoot
├── android
│   └── .git
└── web
    └── .git
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...