git 撤销\删除\恢复某次提交记录
撤销命令: git checkout 文件名。
作用:将暂存区的文件拉下来覆盖本地工作目录内的文件内容
删除命令:git rm --cached 文件名。将文件从暂存区内删除
作用:在不知情的情况下提交了垃圾文件到暂存区中,因此尽量不要随意添加文件到暂存区中,请及时删除掉垃圾文件
恢复命令:git reset --hard commitID
作用:在git仓库内进行将 某一个更新记录恢复,并覆盖暂存区和工作目录
-----------------------------------------------------------------------------------------------------------------
以下为具体操作:
1、撤销:
撤销命令: git checkout 文件名
作用:将暂存区的文件拉下来覆盖本地工作目录内的文件内容
操作:
在本地工作目录中:新建文件list1.html,内容为123456,此时打开进入git 命令行内
查看状态:git status,可见当前list1.HTML未被git跟踪,
此时将其添加到暂存区,让git进行跟踪管理这个文件:git add list1.html,再查看状态可见,list1.html文件已经是被添加到暂存区内,且被git跟踪管理了
如果这时发现本地电脑工作目录内的list1.html文件内写了很多无用的东西,但是不知道该删哪些内容,有没有什么直接的方式呢?
这时候就可使用 撤销命令:git checkout list1.html
2、将文件从暂存区内删除:git rm --cached 文件名
(原因:在不知情的情况下提交了垃圾文件到暂存区中,因此尽量不要随意添加文件到暂存区中,请及时删除掉垃圾文件)
具体操作:
先查看状态:git status
然后删除暂存区内某个文件:git rm --cached test.html
然后再查看状态:git status(可见暂存区内的test.html文件已经不存在了,被删除掉了)
注意:这个地方的“删除”不要理解错误了,这个删除只针对“暂存区”内删除,
而删除成功后,文件就不被git跟踪管理了,但文件还是处于本地的工作目录内
3、将git仓库内指定的更新记录恢复,并覆盖暂存区和工作目录:git reset --hard commitID
比如这时候提交了ABCD几次文件,但是后面发现就只有A次提交的是正常的,BCD次都有错误,
我想要恢复到前面A次提交记录的状态,那么该怎么办?
步骤:
1、先添加文件到暂存区内 git add test.html,
然后提交到git仓库:git commit -m 第一次提交(提交备注信息,必须写)
再添加文件到暂存区内: git add index.html,
然后提交到git仓库:git commit -m 第二次提交(提交备注信息,必须写)
使用Git status查看一下状态,可见缓存区内没有文件了
2、然后此时发现有问题了,但是这都提交了好几次文件内容了,想要恢复到第一次提交的状态怎么办?
那么就可以输入命令恢复到指定的某一次提交时状态:git reset --hard 某一次提交的commitID (注意:这里的commitID可以通过 命令:git log 查看)
接着输入命令:git reset --hard 第一次提交的commitID(直接鼠标粘贴复制即可)
3、恢复完成后, 再输入:git log查看一下,历史提交记录只剩下第一次了(因为虽然我提交了很多次,但是我恢复到了第一次提交时的状态)
此时再去本地的工作目录内查看,也只能看见第一次提交时的文件及内容了