Как я могу использовать git для шаблонов проектов? - PullRequest
19 голосов
/ 07 апреля 2011

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

Некоторые из моих дополнений относятся к конкретному проекту и не должны быть привязаны к шаблону. Другие должны.

Бьюсь об заклад, я мог бы использовать Git для этого, но я не уверен, как. У меня есть git-репозиторий для шаблона и по одному для каждого проекта. Я хотел бы, чтобы некоторые, но не все, коммиты, которые я делаю, были возвращены к шаблону. Могу ли я создать подмножество файлов, которые не будут возвращены? Должен ли я работать над проектными вещами в одной ветке и шаблоном в мастере?

Я действительно ценю любые идеи. Мой гугл-фу дает мало.

1 Ответ

13 голосов
/ 07 апреля 2011

Я бы порекомендовал создать ветку специально для любых изменений шаблона, которые вы хотите внести.Но убедитесь, что вы запускаете его с одного из предыдущих коммитов, чтобы не получить специфичные для проекта изменения в вашем шаблоне.Что-то вроде git checkout -b template_changes EARLY_COMMIT_SHA.Затем любые изменения в шаблоне, которые вы уже внесли, вы можете выбрать в:проект;но если вы достаточно далеко продвинулись, вы можете переключиться на шаблонный проект.

Чтобы перенести изменения шаблона из проекта в репозиторий шаблонов git, вы можете сделать git format-patch SHA_FROM_WHERE_TEMPLATE_BEGAN.Это создаст кучу файлов патчей, которые вам нужно будет скопировать в репозиторий шаблонов и запустить git apply 0001-... 0002-..., чтобы применить патчи, но это не очень весело.Необходимо добавить шаблон репо в проект репо git remote add template /path/to/template/repo.Возможно, вам придется поиграть с опциями -t или -m или командой git remote set-head template template_branch:master (или чем-то еще), если ветвь шаблона существует.Тогда вы сможете отправить свои изменения в репозиторий с помощью git push template template_branch.Если заголовок template_branch не настроен, вам может потребоваться git push template template_branch:master.

Надеюсь, это сработает для вас.И веселиться!

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