Как обмениваться файлами через репозитории git? - PullRequest
50 голосов
/ 09 октября 2009

У меня есть несколько приложений в поддоменах на разных серверах. Каждое приложение имеет свой собственный репозиторий git.Каждое приложение использует несколько общих файлов.По сути, мои репо перекрываются.Как лучше всего справиться с этой ситуацией с несколькими редакторами нескольких проектов?

Ответы [ 4 ]

15 голосов
/ 09 октября 2009

Я бы попробовал сделать все перекрывающиеся части подмодули git .

7 голосов
/ 17 мая 2011

Пока несколько проектов направляют свои изменения в подмодуль в общее местоположение, да, все они могут вносить изменения в общий ресурс. Тем не менее, если одному из них нужно, чтобы они были «особенными», им придется разветвлять подмодуль.

https://git -scm.com / книга / а / v2 / GIT-Tools-Подмодули

Это проведет вас через суперпроект с субмодулями, отредактировав подмодуль из суперпроекта и подтолкнув его обратно. Он также показывает одну опасность - тихая перезапись изменений, если вы запустили git submodule update и у вас были локальные невыпущенные изменения в главной ветви.

В частности, где-то у вас есть общая папка «папка» - вам нужно удалить ее из всех проектов git, но создать где-то новое git-репо с текущим содержимым в качестве начального коммита. Тогда вы будете git submodule <repo> folder; git submodule update во всех проектах, которые теперь поделятся им. Все они смогут передавать изменения в общий репозиторий и вносить изменения друг в друга.

6 голосов
/ 09 октября 2009

Похоже, вы должны разделить общие элементы, чтобы было четкое различие, а затем использовать подмодули. Удостоверьтесь, что вы четко разделяете общие части, в противном случае вы, скорее всего, получите неразрешимый беспорядок.

2 голосов
/ 28 ноября 2016

Вы также можете использовать инструмент git-subrepo . Страница вики связана. Это в основном улучшенная версия submodule и subtree.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...