Мерзавец + GitHub + Heroku

Я плохо знаком с миром Мерзавца, 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.

До сих пор то, что я исследовал, - то, что существует что-то известное как Подмодуль в Мире Мерзавца, который может прийти на помощь, однако, я не смог найти некоторые инструкции новичка.

Может кто-то в сообществе быть достаточно любезным, чтобы совместно использовать мысли и помочь мне определить решение этой проблемы?

7
задан Mark Byers 30 March 2010 в 11:03
поделиться

1 ответ

Идея подмодулей заключается в том, что все они являются отдельными репозиториями 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 не имеет модуля для чтения ваших мыслей.

9
ответ дан 7 December 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: