Я плохо знаком с миром Мерзавца, GitHub и Heroku. До сих пор я наслаждаюсь этой парадигмой, но происхожу из среды с SVN, вещи кажется немного сложным мне в мире Мерзавца. Я сталкиваюсь с проблемой, для которой я ищу решение.
Сценарий:
1. Я имею, устанавливают новый частный проект на GitHub. Я разветвил частный проект, и теперь у меня есть следующая структура в моем ответвлении:
/project
/apps
/my-apps
/my-app-1
....
/my-app-2
....
/your-apps
/your-app-1
....
/your-app-2
....
/plugins
....
Я могу фиксировать код в своем Ветвлении на GitHub от моей машины в любой из папок, которые я хочу. Позже, их вытянул бы в главный репозиторий администратор проекта.
2. Для каждого отдельного приложения в папке приложений я имею, устанавливают приложение на Heroku, который является Мерзавцем Repo сам по себе, где я продвигаю свои изменения, когда я сделан с пользовательскими историями от моей локальной машины. Короче говоря, каждым приложением в папке приложений является Приложение для направляющих, размещенное на Heroku.
Проблема:
То, что я хочу, - то, что, когда я продвигаю свои изменения в Heroku, они могут фиксироваться в мое ветвление проекта на GitHub также, таким образом, это также имеет последний код все время.
Проблема, которую я вижу, - то, что код Heroku является Мерзавцем Repo, в то время как папки, которые я имею на GitHub, являются частью Repo.
До сих пор то, что я исследовал, - то, что существует что-то известное как Подмодуль в Мире Мерзавца, который может прийти на помощь, однако, я не смог найти некоторые инструкции новичка.
Может кто-то в сообществе быть достаточно любезным, чтобы совместно использовать мысли и помочь мне определить решение этой проблемы?
Идея подмодулей заключается в том, что все они являются отдельными репозиториями git, которые вы можете включить в главный, вместо того, чтобы включать все файлы, вместо этого они включают ссылку на этот подмодуль.
Как использовать подмодули
Чтобы использовать подмодуль, сначала вы должны извлечь каталог и создать его как собственный репозиторий git, используя git init
. Затем вы можете загрузить это отдельно в Github или [место по вашему выбору] и использовать его в качестве подмодуля, используя команду: git submodule add [place / to / put / it] git: //github.com/you / proj1
.
Разделение лучше всего
Я бы подумал, что лучше оставить их отдельно как свои собственные репозитории git и отправлять на heroku из каждого из них. Причина? Более вероятно (я чувствую), что вы будете работать по одному и делать git commit
и git push heroku master
только для этого.
Однако, если вы хотите развернуть все приложения одновременно, вы можете рекурсивно пройти вниз по дереву каталогов, используя этот сценарий Ruby, помещенный в каталог верхнего уровня:
Dir["**/*"].select { |dir| File.directory?(dir) }.each do |f|
Dir.chdir(dir) do
`git push origin master`
`git push heroku master`
end
end
Конечно, это будет работать только в том случае, если вы разместили все свои изменения . Я не могу придумать способ автоматизировать это, поскольку Ruby <= 1.9 не имеет модуля для чтения ваших мыслей.