切换到另一个Git标签

jsp*_*ner 159 git github git-tag

如何查看rspec软件包的版本/标签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'
Run Code Online (Sandbox Code Playgroud)

Fak*_*hid 296

正常克隆存储库:

git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle
Run Code Online (Sandbox Code Playgroud)

然后签出你想要的标签:

git checkout tags/1.1.4
Run Code Online (Sandbox Code Playgroud)

这将以"分离的HEAD"状态签出标签.在这种状态下,"您可以环顾四周,进行实验性更改并提交它们,并[丢弃这些提交],而不会通过执行另一次结账来影响任何分支".

要保留所做的任何更改,请将它们移动到新分支:

git checkout -b 1.1.4-jspooner
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令返回主分支:

git checkout master
Run Code Online (Sandbox Code Playgroud)

请注意,正如本答案的第一个修订版中所提到的,还有另一种方法可以检出标记:

git checkout 1.1.4
Run Code Online (Sandbox Code Playgroud)

但正如在评论中提到的,如果你有一个同名的分支,这将导致git警告你refname是不明确的并默认检查分支:

warning: refname 'test' is ambiguous.
Switched to branch '1.1.4'
Run Code Online (Sandbox Code Playgroud)

如果存储库不在分支和标记之间共享名称,则可以安全地使用速记.

  • 对于来自驱动器的观众来说,这个答案是模棱两可的.如果有一个分支和一个叫做"1.1.4"的标签.Git会检查分支,而不是标签.要明确签出标签,请执行:`git checkout tags/1.1.4` (76认同)
  • @VinayWadhwa git checkout master (3认同)
  • 我们如何回到'后备箱'? (2认同)
  • 要查看标签,只需发出“git tag”即可。 (2认同)

chh*_*vey 28

Git v2.23.0(2019 年 8 月)开始,git switchgit 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>.

  • git switch 支持切换到分支。不支持切换到标签。 (6认同)
  • @Progman,请参阅此答案的第二段。 (3认同)
  • `git switch --detach &lt;tag&gt;` 诸如 `git switch --detach v1.10` 效果很好 (2认同)