在说reset命令之前先要了解git的三个区域的概念,分别为
1.工作区:IDEA中以红色显示的文件就是在工作区中的文件(还未使用git add命令加入暂存区)
2.暂存区:IDEA中以绿色(本次还未提交的新增的文件显示为绿色)或者蓝色(本次修改的之前版本提交的文件但本次还未提交的文件显示为蓝色)显示的文件就是暂存区中的文件(使用了git add命令后文件就归属暂存区了)
3.本地仓库:git commit之后的文件就在本地仓库了
4.远程仓库: git push之后文件就推送到远程仓库中了
git reset命令四种模式详解:
1.soft选项:
回滚点之后已提交的文件(正常颜色):要回滚到的提交点之后版本提交的文件将变为绿色存入暂存区中
工作区中的文件(红色文件):不变,继续保留在工作区
暂存区中的文件:
蓝色的文件(修改的前面版本提交的文件就会显示蓝色):如果该文件是要回滚的提交点之后的某个版本中提交的文件,reset后文件将会继续保留在暂存区中,但文件颜色变成绿色,当前的修改保留;如果该蓝色文件是要回滚的提交点之前或者等于要回滚的提交点,则文件颜色不变,依旧是保持蓝色,当前的修改保留
绿色的文件:还是以绿色显示,文件内容不变
2.hard选项
回滚点之后已提交的文件:全部丢弃
暂存区中的文件:全部丢弃
工作区中的文件:继续保留在工作区
3..mixed选项:
回滚点之后已提交的文件:要回滚到的提交点之后版本提交的文件将变为红色存入工作区中
工作区中的文件:不变,继续保留在工作区
暂存区中的文件:全部变成红色存入工作区中
4.keep选项:
回滚点之后已提交的文件:全部丢弃
工作区中的文件:不变,继续保留在工作区
暂存区中的文件:
绿色文件:变为红色存入工作区中
蓝色文件:
1.如果蓝色文件是要回滚的提交点之后的版本提交的文件IDEA则会提示是否选用hard选项,因为keep选项会将回滚点之后已提交的文件丢弃,而你现在的这个蓝色文件(修改前面版本提交的文件就会显示蓝色)就是要丢弃的文件,所以会提示是否使用hard或者smart reset;
2.如果蓝色文件不是要回滚的提交点之后的版本提交的文件则会继续以蓝色文件保存在暂存区中