Я знаю, как вернуться к более старым коммитам в ветке Git, но как мне вернуться к состоянию ветки, продиктованному тегом? Я представляю себе что-то вроде этого:
git revert -bytag "Version 1.0 Revision 1.5"
Это возможно?
Я знаю, как вернуться к более старым коммитам в ветке Git, но как мне вернуться к состоянию ветки, продиктованному тегом? Я представляю себе что-то вроде этого:
git revert -bytag "Version 1.0 Revision 1.5"
Это возможно?
git checkout <id> .
метод из этого ответа .
Ответы:
Теги Git - это просто указатели на фиксацию. Таким образом, вы используете их так же, как HEAD, имена веток или фиксируете хеши sha. Вы можете использовать теги с любой командой git, которая принимает аргументы фиксации / исправления. Вы можете попробовать его, git rev-parse tagname
чтобы отобразить фиксацию, на которую он указывает.
В вашем случае у вас есть как минимум две альтернативы:
Сбросить текущую ветку на определенный тег:
git reset --hard tagname
Сгенерируйте фиксацию отката вверху, чтобы перейти к состоянию тега:
git revert tag
Это может вызвать некоторые конфликты, если у вас есть коммиты слияния.
Вы можете использовать git checkout.
Я попробовал принятое решение, но получил ошибку, warning: refname '<tagname>' is ambiguous'
Но, как говорится в ответе, теги ведут себя как указатель на фиксацию, поэтому, как и в случае с хешем фиксации, вы можете просто проверить тег. Единственная разница в том, что вы начинаете его следующим образом tags/
:
git checkout tags/<tagname>