在
等标签列表中V001
V002
V003
V004
V005
我在v006
和git fetch --tags
之后提取新标记git checkout v006
。
我错误地注意到在此新结帐之前检出了哪个版本(git describe --tags
)。似乎有错误,我必须恢复旧标签。我如何知道使用了哪个标签?
答案 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 revert
或git checkout master
或其他某个分支名称),您只想git checkout develop
,并且您发现有人承诺该分支的代码不正确,需要“反向应用”他们之前的更改并使其成为新的提交(然后您可能会发布git push
或发出拉取请求)。因此,当你正在做的是查看旧版本时,回复“回复”似乎很奇怪。