#git #tags #branch #git-branch
#git #Теги #ветка #git-branch
Вопрос:
Я пытаюсь управлять нашим экземпляром Moodle в нашей собственной ветке репозитория Moodle. Я проверил тег «v1.9.11» ветки «MOODLE_19_STABLE», затем скопировал его в новую ветку «COE», куда я добавил нашу пользовательскую тему и т.д.
Теперь, когда тег «v1.9.12» существует, я хочу объединить коммиты до этого тега в мою ветку «COE» (а не коммиты, которые пришли после).
Могу ли я сделать это с помощью чего-то вроде git cherry-pick?
Ответ №1:
$ git merge v1.9.12
объединит все коммиты до v1.9.12
включительно, и ничего после этого.
Комментарии:
1. Разве я не должен также указывать ветку, в которой есть этот тег (MOODLE_19_STABLE)? Или теги являются глобальными для репозитория?
2. @mrclay: Теги «глобальные», я думаю, вы могли бы сказать. По сути, теги и ветви идентичны — они оба являются просто именами для конкретного коммита — но ветви изменяемы (они указывают на новые коммиты по мере создания новых коммитов), тогда как теги неизменяемы.
3. Чтобы уточнить, теги не содержатся в ветке в том смысле, что имя тега допустимо только в пределах родословной этой конкретной ветви, а теги могут существовать в родословной нескольких ветвей. Это просто название для конкретного коммита.
4. Неявная часть объяснения mipadi:
git merge
принимает коммит в качестве аргумента. Он объединяет этот коммит (и, следовательно, всю его родословную) с вашим текущим коммитом. Теги и ветви — это два возможных способа указать коммиты.