У вас есть 2 основные опции для управления подпроекта в мерзавца.
Git не имеет менеджер зависимостей и наиболее распространенные варианты являются следующие:
Submodules
Разрешить использование внешних хранилищ в пределах выделенного подкаталога исходного дерева, всегда указываемого на конкретную фиксацию.
git submodule
Для того, чтобы использовать подмодуль каждую папку будет автономным хранилищем и будет управляться и храниться в другом месте. Git проверит конкретную фиксацию (фиксацию, версию, тег и т. Д.) И будет использовать ее как HEAD подмодуля. В большинстве случаев подмодуль будет находиться в отдельной головке.
# once you have a repo simply add it to git
git submodule add <url>
Как только проецируется на ваш репо, вы должны его инициализировать и обновить.
git submodule init
git submodule update
На Git 1.8.2 новый вариант --remote
был добавлен
git submodule update --remote --merge
будет fetch
последние изменения от входа в каждый подмодуль, merge them in
и check out
последняя редакция подмодуля.
Как the docs описать:
--remote
Эта опция действительна только для команды обновления. Вместо использования зарегистрированного SHA-1 суперпроекта для обновления подмодуля, используйте состояние ветви удаленного отслеживания подмодуля.
Это эквивалентно запуску git в каждом подмодуле.
Как я могу исправить или изменить код внутри субмодуля?
с помощью подмодуль будет поместить код внутри вашего основного проекта в рамках его содержания [Новая папка].
Различие между его локально внутри папки или наличием ее как части субмодуля заключается в том, что в подмодуле контент управляется (переводится) в другой автономный репозиторий, как описано выше.
Это иллюстрация подмодуля - проект внутри другого проекта, в котором каждый проект является автономным проектом.
git subtree
Git поддерево позволяет вставить любой репозиторий в подкаталог другого одного
Очень похож на submodule
, но основное различие заключается в том, где ваш код управляется. В подмодулях содержимое помещается внутри отдельного репо и управляется там, что позволяет вам клонировать его также и ко многим другим репозиториям.
subtree
управляет содержанием как часть корневого проекта, а не в отдельном проекте.
Вместо того, чтобы записывать, как настроить его и понять, как его использовать, вы можете просто прочитать этот отличный пост, который объяснит все это.
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
Изучите использование подмодулей. Они не идеальны, но они могут решить вашу проблему. –
@TimBiegeleisen: Ссылка? И ... вы имеете в виду, что это функция GitHub или функция git? – einpoklum
Вот один из них: http://blog.joncairns.com/2011/10/how-to-use-git-submodules/ –