一、git rm –cached (这种方法不常用)
- 从暂存区撤回XXX文件
git rm --cached XXX -r
- 从暂存区撤回所有(不管你是第几次提交,是否提交到历史区)
git rm --cached XXX -r
二、git checkout(一旦回滚,工作区内容无法恢复)
- 把暂存区内容撤回工作区(适用场景:假设创建了1.txt,然后提交到了暂存区,然后我对1.txt进行了修改,此时还没到暂存区,但此时我想要回到修改之前的内容),撤回后,可以拿cat查看一下。
git checkout .
三、现在我们遇到另一个问题题:假设创建了1.txt,然后提交到了暂存区,然后我对1.txt进行了修改,此时提交1.txt到暂存区,那么我想回滚到上一个版本应该怎么做呢?
- 在暂存区中,回滚到上一次暂存区中巨鹿的内容(暂存区先回滚一次)。
git reset HEAD .
- 把最先暂存区的信息回滚到工作区。
git checkout .
四、每个区的代码比较 git diff(我们查看不同区域的代码的不同,通常基于可视化的页面来查看的)
- 工作区VS暂存区
git diff
- 工作区VS历史区
git diff master
- 暂存区VS历史区
git diff --cached
五、历史区的版本回滚(最重要的),当我们回滚到某一个历史版本之后,暂存区和工作区的内容都将被这个版本内容所代替。
git reset --hard 版本号 //版本号通过git reflog去查看
六、把历史操作步骤输出。利用如下命令,然后打开history.txt文件,里面记录了所有的操作。
history > history.txt