转自:https://blog.csdn.net/p106786860/article/details/52023885
一、删除文件
a.本地删除不是真的删除1.查看当前文件状态,新创建的文件hack-1.txt添加到暂存区,welcome.txt文件在工作区有修改;
2.当前工作区的文件有detached-commit.txt、hack-1.txt、new-commit.txt、stash.txt和welcome.txt;
3.直接在工作区删除txt类型文件;
4.查看暂存区,可以看见.txt文件在暂存区(版本库)中仍然存在,并为删除;
5.暂存区存在新文件hack-1.txt,工作区删除了所有txt文件。
由上可知,直接在工作区删除txt类型文件,对暂存区和版本库没有任何影响;二、执行git rm命令删除文件
a.使用git rm删除文件
1.使用git rm命令,从暂存区中删除文件detached-commt.txt、hack-1.txt、new-commit.txt和welcome.txt文件;
2.查看文件状态,在暂存区detached-commit.txt、new-commit.txt和welcome.txt文件被删除;
3.将暂存区删除文件的修改,提交到本地库;
4.查看历史版本的文件列表,文件只是在版本库的最新提交中被删除了,在历史提交中尚在;
5.查看历史版本文件内容,历史版本中已经删除的文件的内容;
三、命令git add -u快速标记删除
1.恢复原来的版本库状态;
2.删除本地文件,并查看文件的状态,本地文件在工作区中被删除;
3.将(被版本库追踪的)本地文件的变更(修改、删除)全部记录到暂存区中;
4.执行提交,删除文件;
四、恢复删除文件
1.将HEAD~1版本中welcome.txt文件恢复到暂存区和工作区;
2.将恢复的文件welcome.txt添加到暂存区;
3.查看暂存区恢复文件的状态;
4.将恢复的文件,提交到版本库;
五、移动文件
a.使用git mv命令移动文件
1.使用git mv命令,将welcome.txt改名为README文件,查看当前的状态中,查看改名操作;
2.提交改名操作,在提交输出中可以看到改名前后文件文件的相似度为100%;
b.使用mv命令,移动文件(删除、新建)
1.将分支指向HEAD^,在使用HEAD^的文件列表更新暂存区和工作区;
2.查看文件状态,没有为暂存的文件或者未跟踪的文件,查看暂存区的文件列表,存在hack-1.txt和welcome.txt文件;
3.使用mv命令,在本地将welcome.txt文件修改成README文件;
4.查看文件状态,发现删除了welcome.txt文件,新增了README文件;
5.向README文件添加"Bye-Bye."字符串,并将修改的文件增加到暂存区
6.查看文件状态,发现新创建了文件README,删除了welcome.txt文件;
7.将新建的文件和删除的文件提交到本地库;