Win*_*Win 7 git git-revert git-reset
哦哦...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),却不知道我在做什么(或者Git会做什么).
我现在想要撤消所有这样的事情:
.git)恢复到某个分支(最后一个将立即执行).我找到了对git reset --soft和git reset --hard的引用,但我已经向自己证明了我可以通过过早地使用命令而不完全理解它来做真正的损害.:)
我找到了git reset手册页,但我仍然感到困惑:
HEAD?HEAD和之间有什么区别
* master?--soft,--hard或其它(3个选项)?git reset)来"完成"逆转?更新:阅读以下答案后:
git reset --hard
HEAD^?HEAD 是签出分支的最新提交.master是一个分支(按照惯例,主分支),而是HEAD签出分支的历史记录中的位置.HEAD是相对于你所在的分支.git reset --soft将您的更改留在工作树中,不承诺为您做任何您喜欢的事情.git reset --hard将工作树恢复到重置为提交时的状态.首先,要保留提交以防以后要检查它,请创建一个分支:
git checkout -b my_bad_commit
Run Code Online (Sandbox Code Playgroud)
(或者git branch my_bad_commit像莱斯曼的评论中提到的那样做.)
然后返回master或你所在的任何分支并重置:
git checkout branch_with_bad_commit
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
HEAD ^转换为"HEAD的父级",您甚至可以将其堆叠为HEAD ^^ = 2提交回来.有关此主题的更多信息,请查看关于git中的undo的git社区书籍章节
| 归档时间: |
|
| 查看次数: |
8164 次 |
| 最近记录: |