将所有更改还原为先前提交的状态

时间:2013-04-03 17:22:04

标签: git version-control

我正在使用Git,并希望了解将此Repo的所有更改还原为特定提交的最佳方法。例如,以下是我的日志的示例:

commit hash#1

commit hash#2

commit hash#3

commit hash#4

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

我不想重写/删除历史记录,因为这是一个公共回购。而且我确实希望在重新转换为#4之后(重新)提交哈希#4。

谢谢!

2 个答案:

答案 0 :(得分:3)

尝试以下

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

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

的状态

答案 1 :(得分:0)

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

  

reset命令按特定顺序覆盖这三棵树,   当你告诉它时停止。

     

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

     

2)那么,让索引看起来像那样(除非--dd,否则停在这里)

     

3)然后,让工作目录看起来像那样

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