別のGitタグに切り替える


180

rspecバンドルのバージョンversion / tag 1.1.4をチェックアウトするにはどうすればよいですか?

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

次のコマンドを使用すると、masterブランチに戻ることができます。

git checkout master

この回答の最初の改訂で述べたように、タグをチェックアウトする別の方法があります。

git checkout 1.1.4

しかし、コメントで述べたように、同じ名前のブランチがある場合、refnameがあいまいであることをgitに警告し、デフォルトでブランチをチェックアウトします。

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

リポジトリがブランチとタグの間で名前を共有しない場合、省略形は安全に使用できます。


78
ドライブバイの視聴者にとって、この答えはあいまいです。ブランチとと呼ばれるタグがある場合1.1.4。Gitはタグではなくブランチをチェックアウトします。明示的にタグをチェックアウトするには行いますgit checkout tags/1.1.4
ocodoを

2
「トランク」に戻るにはどうすればよいですか?
Vinay W

3
@VinayWadhwa gitチェックアウトマスター
ABCD.ca

1
タグを表示するには、を発行しgit tagます。
ACK_stoverflow

8

現在 Gitのv2.23.0(2019年8月)、git switch好まれているgit checkoutあなたは、単に支店/タグを切り替えているとき。git checkoutブランチを切り替えるためとファイルを復元するための2つの機能があったため、これを行ったと思います。そのため、v2.23.0では、これらの懸念事項を分離するためにgit switch、2つの新しいコマンド、およびが追加されましたgit restore。将来のある時点で予測しますgit checkout廃止される予定です。

通常のブランチに切り替えるには、を使用しますgit switch <branch-name>。単一のコミットとタグを含む、コミットのようなオブジェクトに切り替えるには、を使用しますgit switch --detach <commitish><commitish>で、はタグ名またはコミット番号です。

この--detachオプションでは、「検査と破棄可能な実験」のモードであることを強制的に認識させます。切り替え先のコミットから新しいブランチを作成するには、を使用しますgit switch -c <new-branch> <start-point>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.