Checkout/Rollback 特定的提交 ID GIT(可能重复)

Checkout/Rollback specific commit ID GIT (Possibly Duplicated)

我有三个提交,但我想签出最后一个提交并从那里开始工作。但也保留其他提交,即当我再次提交时,这将是一个新提交,不会弄乱我的其他提交:)

Its also possibly a duplicated question, but since its a crucial scenario I have asked my own question.

如果有任何 GUI 解决方案,请选择该解决方案,因为我是 GIT 的新手:)

有人给我的最佳答案是:git checkout -b old-state 0d1d7fc32 但我做不到:S

此外,如果我还原两次以检查第三次提交,它会删除前两个还原的提交吗?

我不知道你用的是哪个GUI工具。我总是使用 CLI。但是道理是一样的。

  1. 创建一个引用最新提交 98ea8a1d

  2. 的新分支 "branchA"
  3. 硬重置当前分支 "feature/RPG……" 以提交 f6f69dc1

所以,最后两个提交被branchA保护了。当前分支回滚到 f6f69dc1。您可以从 f6f69dc1 执行操作。

如果我没理解错的话,您需要使用 git checkout <commit_hash> <new branch> 检查过去对分支的提交。在 new branch 中进行更改,然后您可以合并回来。

但这仍然与直接在三个提交之上进行新更改意味着相同,那么您为什么要这样做?

对于你的第二个问题,git revert 将撤消你的提交,但它们将始终在你的历史记录中,以便你以后可以使用