В настоящее время у нас есть среда, в которой несколько репозиториев содержат одни и те же файлы, которые мы пытаемся «экспортировать», чтобы обновления файлов не заставляли нас обновлять каждый отдельный репозиторий.
Ниже приведен абстрактный макет желаемой настройки, у нас в основном есть папка «share», которая предоставляет пакет, который должен быть включен в другие проекты на удаленном компьютере.
local:
+---1
| 1.txt
+---2
| 2.txt
+---3
| 3.txt
\---share
\---somepackage
somefile.txt
remote:
+---1
| | 1.txt
| \---somepackage
| somefile.txt
+---2
| | 2.txt
| \---somepackage
| somefile.txt
\---3
| 3.txt
\---somepackage
somefile.txt
При удалении общие файлы должны содержаться в каждом хранилище.Изменения в общей папке должны применяться к каждому общему репозиторию (лучший вариант немедленно, наихудший случай при передаче на удаленный компьютер).
Мы используем Windows в качестве среды разработки, но переданные репозитории будут использоваться linuxсистема, которая запускает каждый репозиторий, если это уместно.
Мы думали об использовании символических ссылок, но согласно этот пост SO жесткие ссылки не управляются git, а программные ссылки не будут иметьфункциональность, которую мы желаем.Пост довольно старый и относится к средам разработки Linux, поэтому мне любопытно, были ли какие-либо изменения в этом отношении и можно ли его применить к окнам.
Насколько мне известно, лучшим решением будетсоздать скрипт типа post-merge (, упомянутый в том же посте SO ), который извлекает файлы из-за пределов репо в репо и затем помещает их в удаленный репозиторий.Это сделало бы «предварительный толчок» хуком, если бы мне пришлось дать ему имя.
В настоящее время я работаю один над этой проблемой и не очень разбираюсь в git, но, конечно, есть и другие, гораздо более изящныерешения для решения этой проблемы.