git reset
是恢复到某次 commit 记录的命令,有三种常用模式:
mixed(默认模式),
get reset <commit-id>
soft
get reset --soft <commit-id>
hard
get reset --hard <commit-id>
现在假设我们有 foo.txt
文件,里面只有一个字符 1
,已经把他放进版本库中:
然后修改 foo.txt
,在里面添加一个字符 2
,放进版本库:
此时使用 reset
命令的任何一种模式恢复到 d855a71d5
都会将 7a39fa077
记录抹去,回到 d855a71d5
。
三者的区别在于 7a39fa077
抹去以后,工作区和暂存区的情况:
mixed 模式在回到
d855a71d5
之后,之前修改的记录在工作区soft 模式在回到
d855a71d5
之后,之前修改的记录还在暂存区,可以直接commit
到版本库中hard 模式最彻底,彻底恢复
d855a71d5
,之前修改的记录全部丢失
git reset
是最重用的 git 命令,需要好好理解。
已经大半年没有更新博客了,先写这篇文章练练手。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。