在标签列表中
v001
v002
v003
v004
v005
v006
我拉了新标签让我们说git fetch --tags
和git checkout v006
。
错误地,我没有注意到git describe --tags
在这个新的结帐之前哪个版本被签出()。似乎有错误,我必须恢复到旧标签。我怎么知道使用了哪个标签?
在标签列表中
v001
v002
v003
v004
v005
v006
我拉了新标签让我们说git fetch --tags
和git checkout v006
。
错误地,我没有注意到git describe --tags
在这个新的结帐之前哪个版本被签出()。似乎有错误,我必须恢复到旧标签。我怎么知道使用了哪个标签?
reflogHEAD
记录每次成功的结帐以及“从(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
tag 的 SHA-1 tag1
。
注意:您说“似乎有错误,我必须恢复到旧标签”,然后(通过堆栈溢出标签)参考git-revert. 但是,这些类型git checkout
(通过标签或 SHA-1)是关于查看其他版本(即,将特定版本放入您的工作目录)。该git revert
命令是关于添加一个新的提交,其效果是撤消一些旧的提交。
通常,您只希望在git revert
“在一个分支上”(如在git checkout master
或git checkout develop
其他分支名称中),并且您发现有人向该分支提交了不正确的代码,并且需要“反向应用”他们之前的更改并进行一个新的提交(然后你可能会发布,git push
或者提出一个拉取请求)。因此,当您一直在查看旧版本时,恢复“还原”似乎很奇怪。