github学习笔记(三):修改撤销和删除文件
keep learning! 注意:判断自己属于哪种情况可以使用 get status 命令,
修改和撤销
文件有问题,还没有get add【丢弃工作区的修改】
发现修改的文件有问题不想上传当前文档,一种办法是修改成原来的样子,然后提交。还有一种方法是使用下列语句,
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。
文件有问题,已经 get add,但还没有 commit 【撤销暂存区的修改,重新放回工作区】
已经存在了暂存区,还没有最终上传
用命令git reset HEAD
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
文件有问题,已经get add ,也已经 commit【版本回退 拉回时间线】
文件删除
一般情况下直接在工作区把文件删除,或使用 rm 命令删除。
$ rm test.txt
此时Git知道有文件被删除,因此,工作区和版本库就不一致了,git status命令会说明哪些文件被删除了。
确实要删除文件,将其从版本库中移除
用命令 git rm 删掉,并且 git commit
$ git rm test.txt
$ git commit -m "remove test.txt"
该命令后文件就从版本库中被删除了
删错了,想要恢复
使用checkout 命令将文件恢复原状【checkout其实是用版本库里的版本替换工作区的版本,所以无论工作区是修改还是删除,都可以一键还原】
$ git checkout -- test.txt
注:
从来没有被添加到版本库就被删除的文件,是无法恢复的!
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么永远不用担心误删,但是要小心,只能恢复文件到最新版本,且会丢失最近一次提交后你修改的内容。
参考链接
参考链接很重要,大部分全靠它们了。本文只是记录一些自己学习过程中学到的一些东西和一些体会!
- 廖雪峰老师的网站 https://www.liaoxuefeng.com/wiki/896043488029600
- 怎么从零开始使用github? - 宁萌时光的回答 - 知乎 https://www.zhihu.com/question/419802287/answer/1472579577
- git 安装网址:https://git-scm.com/download/win