撤销Git中的最近一次操作

5
尝试返回以前的提交记录时,我使用了“Switch/Checkout”,选择了要移动到的提交记录,然后取消选中了“创建新分支”的选项。移动成功了,但现在我无法回到最新的提交记录。幸运的是,我将它保存在Bitbucket上,但我想知道是否可以从本地git中解决这个问题。我使用的是TortoiseGit。

关于git撤销的一切你想知道的(但是不敢问):https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/ - Florian F
2个回答

5

看起来您正在使用某种 GUI,但您没有指定是哪种。如果您想跳回到以前的版本,可以使用以下方法:

git checkout HEAD@{1}

这个指的是在git引用日志中回到以前的版本。但是,你将处于分离HEAD状态。这意味着你的任何提交都不会与分支关联,也不会自动拉取来自任何分支的新提交。这可能不是你想要的。

如果你知道想要在哪个分支上,请使用

git checkout BRANCH_NAME

如果您知道自己在某个分支上,但不确定是哪个分支,您可以使用以下命令获取分支名称:

git branch

这将列出所有本地分支的名称,当前分支前面会有一个星号 (*)。

git name-rev $(git reflog --pretty='format:%H' -1) 

我需要帮助。我错误地从不同的分支中获取和检出。但是我必须回到之前的分支并使用最后一次提交。我该怎么办? - AHAMED AAQIB
@AHAMEDAAQIB 如果你有不同于此处所问的问题,你应该发布一个新的问题。 - Michael Mior
我发布了新的问题,但没有人回答它。 - AHAMED AAQIB

1

@Michael是正确的。因为您已经切换到另一个提交,所以您处于分离的HEAD状态。我将展示如何在GUI(TortoiseGit)中修复此问题。

您可以在TortoiseGit的日志中看到这一点,请参见<no branch>

enter image description here

enter image description here

你可以回到原始提交状态,只需切换回你的分支,例如:master

enter image description here enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接