如何知道之前签出的标签

时间:2014-02-21 13:01:48

标签: git revert git-revert

等标签列表中
  

V001
  V002
  V003
  V004
  V005

我在v006git fetch --tags之后提取新标记git checkout v006

我错误地注意到在此新结帐之前检出了哪个版本(git describe --tags)。似乎有错误,我必须恢复旧标签。我如何知道使用了哪个标签?

1 个答案:

答案 0 :(得分:1)

HEAD reflog记录每次成功结账以及“从(A点)移动到(B点)”,例如:

$ git reflog
676699a HEAD@{0}: checkout: moving from
        695326c489285ed5678ac04d58289bcb24019bb9 to tag2
695326c HEAD@{1}: checkout: moving from master to tag1

在这种情况下,我从master开始,然后git checkout tag后跟git checkout tag2。 (注意:我稍微编辑了输出以使其更适合发布。如果你设置git设置为“less”,你可能需要在窗口中向左/向右滚动才能看到所有内容。)

第一个输出行(我将其包装为第三个引用行)具有原始SHA-1,因为当您检出不是分支的引用时(或者当您使用--detach时你得到一个“分离的HEAD”,HEAD文件记录了一个原始提交SHA-1。但是,我们可以从下一行看到695326c489285ed5678ac04d58289bcb24019bb9是标记tag1的SHA-1。


注意:你说“似乎有错误,我必须恢复到旧标签”,并将(通过Stack Overflow标签)引用到 git-revert 。但是,这些git checkout(通过标记或SHA-1)是关于查看某些其他版本(即,将特定版本添加到您的工作目录中)。 git revert命令是关于添加提交,其效果是撤消一些提交。

一般情况下,如果您“在某个分支上”(例如,git revertgit checkout master或其他某个分支名称),您只想git checkout develop,并且您发现有人承诺该分支的代码不正确,需要“反向应用”他们之前的更改并使其成为新的提交(然后您可能会发布git push或发出拉取请求)。因此,当你正在做的是查看旧版本时,回复“回复”似乎很奇怪。

相关问题