1

我在 Git 中工作,想知道将我对这个 Repo 的所有更改恢复到特定提交的最佳方法。例如,这是我的日志的示例:

commit hash#1

commit hash#2

commit hash#3

commit hash#4

我在我的master 分支中,希望将对此 repo 所做的所有更改恢复为提交 hash#4。这意味着我想撤消在 hash#1、hash#2 和 hash#3 中提交的更改。

我不想重写/删除历史,因为这是一个公共回购。而且我确实想(重新)提交哈希#4,一旦它被恢复。

谢谢!

4

2 回答 2

4

尝试以下

git reset --hard commit_hash_4
git reset --soft commit_hash_1

第一个命令将重置工作目录并返回 commit_hash_4。第二个命令会将头部移回 commit_hash_1。此时提交将保留线性历史记录,但会为您提供 commit_hash_4 的状态

于 2013-04-03T17:26:46.447 回答
0

每个(http://git-scm.com/2011/07/11/reset.html)的重置概述:

重置命令以特定顺序覆盖这三个树,当你告诉它时停止。

1) 移动 HEAD 指向的任何分支(如果 --soft 则停止)

2)然后,使索引看起来像那样(在这里停止,除非--hard)

3)然后,使工作目录看起来像这样

只是想与遇到此问题的任何其他用户分享。

于 2013-04-03T18:20:25.880 回答