Как перечислить git-теги, содержащие коммит, который был выбран вишней - PullRequest
0 голосов
/ 31 октября 2018

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

Например:

  • У меня есть коммит abcd1234, который был объединен с веткой master.
  • Это дает мне коммит слияния с хешем a1b2c3d4
  • В этой точке я создаю тег с именем release-1.0

На данный момент я могу использовать git tag --contains abcd1234 ИЛИ git tag --contains a1b2c3d4. Обе эти команды будут перечислять тег release-1.0

Сейчас:

  • Я создал ветку с исправлениями из release-1.0 tag
  • У меня есть новый коммит слияния на мастере с хешем xyz789
  • Я выбираю этот коммит в исправление ветку
  • Я отмечаю эту оперативно-исправленную ветку как release-1.1 и удаляю ветку

Как получить список всех тегов, содержащих коммит xyz789? В этом случае он должен показать, что этот коммит доступен в:

  • релиз-1.1

1 Ответ

0 голосов
/ 31 октября 2018

Проблема здесь в том, что release-1.1 не содержит коммит xyz789 (который также не является действительным хеш-идентификатором, но не обращайте на это внимания :-)). Cherry-picking создает новый, другой коммит с новым, другим хеш-идентификатором.

Вместо того, чтобы пытаться отследить, какие коммиты являются копиями других коммитов - это возможно; см. аргумент -x для git cherry-pick - лучше применить коммит с оперативным исправлением как ветвь, временную или нет, которая создается сразу после коммитов, в которых проблема впервые возникает. Этот коммит затем может быть объединен с несколькими различными ветками. См. Каковы опасности вишни в git между двумя ветвями A и B, если я никогда не собираюсь сливаться между ними? и следуйте ссылкам на посты Раймонда Чена в блоге.

...