Я хочу создать публичное репо, чтобы поместить некоторые примеры файлов из моего основного репо (private). Есть ли способ софт связать несколько папок с git репо на другой git репо?
Как связать папку с репозиторией git с другим репо?
Ответ 1
Затем вы должны использовать подмодули для этой задачи.
Подмодуль - это разные репозитории git под одним и тем же корнем.
Таким образом, вы можете управлять 2 различными проектами на уровне папок внутри корневого репозитория
Submodules
позволяют встроить внешние репозитории в выделенный подкаталог исходного дерева, всегда указывая на конкретную фиксацию.
git submodule
Разделите свой большой проект на подпроекты, как вы это делали до сих пор. Теперь добавьте каждый дополнительный проект в основной проект, используя:
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
последней версией подмодуль.
Как документы описывают это:
--remote
Этот параметр действителен только для команды обновления. Вместо использования суперпроектов, записанных SHA-1 для обновления подмодуля, используйте состояние ветки удаленного отслеживания подмодулей.
Это эквивалентно запуску git pull в каждом подмодуле.
Однако как я могу нажать фиксацию в сценарии исправления ошибок в C, который влияет на код, разделяемый родительскими слоями?
Опять же: использование подмодуля поместит ваш код в ваш основной проект как часть его содержимого. Разница между наличием локально внутри папки или наличием ее как части подмодуля заключается в том, что в подмодуле контент управляется (переводится) в другой автономный репозиторий.
Это иллюстрация проекта подмодуля внутри другого проекта, в котором каждый проект является автономным проектом.
git subtree
Git поддерево позволяет вставить любой репозиторий в качестве подкаталога другого
Очень похоже на submodule
, но основное различие заключается в том, где ваш код управляется. В подмодулях содержимое помещается внутри отдельного репо и управляется там, что позволяет вам клонировать его также ко многим другим репозиториям.
subtree
управляет содержимым как часть корневого проекта, а не в отдельном проекте.
Вместо того, чтобы записывать, как настроить его и понять, как его использовать, вы можете просто прочитать эту отличную запись, которая объяснит все это.
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/