Перехід на інший тег Git


180

Як перевірити версію версії / тегу 1.1.4 пакету rspec ?

cd ~/Library/Application\ Support/TextMate/Bundles/
git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'

Відповіді:


336

Клоніруйте сховище як звичайно:

git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle

Потім перевірте потрібний вам тег:

git checkout tags/1.1.4

Це дозволить перевірити тег у стані "відокремленої голови". У такому стані "ви можете озирнутися, внести експериментальні зміни та здійснити їх та [відкинути ці зобов'язання], не впливаючи на будь-які гілки, виконавши іншу перевірку".

Щоб зберегти будь-які внесені зміни, перемістіть їх у нову гілку:

git checkout -b 1.1.4-jspooner

Ви можете повернутися до головної гілки за допомогою:

git checkout master

Зауважте, як було сказано в першій редакції цієї відповіді, є ще один спосіб перевірити тег:

git checkout 1.1.4

Але як було сказано в коментарі, якщо у вас є гілка з таким самим іменем, це призведе до того, що git попередить вас про те, що перейменування неоднозначне, і перевірити гілку за замовчуванням:

warning: refname 'test' is ambiguous.
Switched to branch '1.1.4'

Скорочення можна безпечно використовувати, якщо сховище не поділяє імена між гілками та тегами.


78
Для глядачів драйву ця відповідь неоднозначна. Якщо є гілка і тег називається 1.1.4. Git перевірятиме філію, а не тег. Щоб явно git checkout tags/1.1.4
перевірити

2
Як ми можемо повернутися до «багажника»?
Vinay W

3
@VinayWadhwa master git checkout
ABCD.ca

1
А щоб побачити теги, просто видайте git tag.
ACK_stoverflow

8

Станом на Git v2.23.0 (серпень 2019 року), він git switchнадається перевагу, git checkoutколи ви просто перемикаєте гілки / теги. Я здогадуюсь, що вони зробили це, оскільки git checkoutмали дві функції: для перемикання гілок та відновлення файлів. Так у v2.23.0 вони додали дві нові команди git switch, і git restore, щоб розділити ці проблеми. Я б передбачив у якийсь момент у майбутньому, git checkoutбуде застарілим.

Щоб переключитися на звичайну гілку, використовуйте git switch <branch-name>. Щоб переключитися на об'єкт, подібний до комітів, включаючи одиничні коміти та теги, використовуйте git switch --detach <commitish>, де <commitish>ім'я тегу чи номер комісії.

Цей --detachпараметр змушує вас визнати, що ви перебуваєте в режимі "перевірки та скасування експериментів" . Щоб створити нову гілку з комісії, на яку ви переходите, використовуйте git switch -c <new-branch> <start-point>.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.