我正在使用Git,并希望了解将此Repo的所有更改还原为特定提交的最佳方法。例如,以下是我的日志的示例:
commit hash#1
commit hash#2
commit hash#3
commit hash#4
我在我的master
分支中,并希望将对此repo所做的所有更改恢复为提交#4哈希。这意味着我想要撤消在散列#1,散列#2和散列#3中提交的更改。
我不想重写/删除历史记录,因为这是一个公共回购。而且我确实希望在重新转换为#4之后(重新)提交哈希#4。
谢谢!
答案 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)然后,让工作目录看起来像那样
只想与遇到此问题的其他任何用户分享。