2015-05-19 2 views
0

У меня есть частный репозиторий git (repos 'private') с кучей файлов в них Я часто редактирую. Некоторые из этих файлов публикуются на веб-сайте. Это утомительно , чтобы обновлять эти файлы каждый раз, когда я делаю небольшие изменения. Поэтому я подумал о с использованием подмодулей git следующим образом: я установил второй (теперь общедоступный) git репозиторий ('public') и разместил все файлы, которые появляются на веб-сайте. Затем сайт предоставляет ссылки на эти файлы в «общедоступном». Как только я отредактирую один из файлов в «приватном», который также находится в «общедоступном», изменения в «public» будут отображаться (после простой команды git), и поэтому изменения файла будут отображаться на сайте . Мои вопросы:git subodules: какой репозиторий должен использоваться как «подмодуль»?

1) Это хороший подход для решения проблемы?

2) Я читал о git submodule update --remote --merge, но я до сих пор не 100% уверен, что это обновляет ли подмодуль изменения в основной проект или точно напротив. Я часто вижу, что «верхний поток» используется в объяснениях , но не смог найти точное определение.

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

[Я думал, что я по-прежнему держать эти вопросы в одном посте, как они весьма связаны.]

ответ

1

Использование Подмодули добавляет довольно немного сложности.

Кажется, что было бы проще иметь один репозиторий с «приватным» каталогом и общедоступным каталогом. Каталог «public» может содержать символические ссылки на файлы в «private».

Это позволит вам иметь 2 типа файлов, но избегать сложности подмодулей.

Другим вариантом является то, что ваша система сборки должна обрабатывать это: иметь только один каталог, содержащий все файлы, и иметь цель Makefile, которая копирует общедоступные файлы в другой каталог.

+0

Привет, спасибо за помощь. Действительно, подмодули создают еще один уровень сложности. Но с использованием git-сервера, который я использую, невозможно иметь как государственные, так и частные подпапки в одном проекте. Кроме того, символические ссылки тогда не работают (если у вас есть два разных проекта), просто исправляется локально правильный, но удаленно бессмысленный относительный путь, и файл не найден. Я закончил использование жестких ссылок во втором (общедоступном) репозитории. Это сработало для некоторых тестовых файлов, еще не пробовал «большой масштаб». [Я принимаю ваш ответ, поскольку он привел меня в правильном направлении] –