Git - Слияние из шаблона проекта - нет подкаталога - PullRequest
2 голосов
/ 02 февраля 2012

Мне интересно, будет ли это работать ...

Скажем, у меня есть шаблон проекта примерно такой:

.
+ resources/
  + images/
      1.png
      2.png

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

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

Подмодули или объединение поддеревьев, похоже, не подходят здесь, потому что они не клонируются в подкаталог; он фактически "сопоставлен" с корневым каталогом или новым проектом.

Один, который я думаю, что мог бы работать, был бы что-то вроде этого:

#setup project
mkdir proj1
cd proj1
git init.
touch .gitignore
git add .gitignore
git commit -m "Initial Commit"

#setup main repo
git remote add origin git@server:proj1.git
git push origin master

# load template repo as separate remote 
git remote add -f template git@server:template.git

# import into current master
# here I guess I have the choice of either:
git merge template/master
# OR
git rebase template/master

Затем в дальнейшем шаблон проекта обновляется:

.
+ resources/
  + images/
      1.png
      2.png
      3.png  <-added file

I должен быть в состоянии сделать git pull template master, чтобы извлечь изменения из шаблона и повторить последние шаги слияния / перебазирования для интеграции в проект.

Это правильный подход или есть лучший способ сделать это?

Собираюсь ли я столкнуться с некоторыми проблемами в этом треке?

Спасибо

1 Ответ

1 голос
/ 02 февраля 2012

Лучший способ сделать это - иметь ветку шаблона в репо шаблона. У каждого клона для отдельных проектов будет ветвь, которую вы создаете из ветки шаблона. Если вы хотите обновить из шаблона, просто выберите и затем объедините источник / шаблон. Названия филиалов на ваше усмотрение. Это всего лишь предложение.

Я бы не советовал делать это, потому что ваши проекты могут испытывать немалую боль, если в один прекрасный день произойдут большие изменения, особенно после длительного периода времени, когда в проекте было много коммитов. Ваша перебазировка будет очень долгим процессом.

...