git之时光机穿梭
版本回退
-
HEAD
指向的版本就是当前版本,使用命令git reset --hard commit_id
可以在版本之间穿梭 -
可以通过
git log
查看提交历史,来确认回退到哪个版本 -
如果不小心关掉了
git bash
,可以通过git reflog
查看命令历史,以便确认要回到未来的哪个版本
工作区和暂存区
工作区(Working Directory)
-
电脑中可以看到的目录
版本库(Repository)
-
工作区中有一个隐藏的版本库--
.git
-
版本库中最重要的就是暂存区
(stage)
和Git
自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
-
当通过
git add
添加文件时,实际上是把文件暂存到了stage
中 -
通过
git commit
提交时,就是将暂存区的所有内容提交到当前分支-
因为创建
Git
版本库时,Git
自动创建了第一个分支master
,所以目前git commit
就是往master
分支上提交更改
-
管理修改
-
git
管理的是修改,而不是文件。即修改了某一行或某个单词。 -
如果修改了文件内容,而没有进行
git add
,则修改并没有保存到暂存区,那就不会加入到commit
撤销修改
git checkout -- <file>
-
丢弃工作区的更改
-
情况1:修改了工作区,但未提交到暂存区
-
情况2:提交到暂存区后又修改了工作区,但未再次提交到暂存区
-
git reset HEAD <file>
-
丢弃暂存区的提交
-
此时工作区的修改还存在,如果想丢弃,则继续使用
git checkout -- <file>
-
删除和撤销删除
-
当通过手动或命令
rm <file>
删除工作区文件后,如果真的想删除该文件,通过git rm <file> git commit -m "..."
删除版本库中的文件,不可恢复 -
而如果不小心误删,想恢复的话,通过命令
git checkout <file>
恢复 -
git checkout <file>
实际上就是让工作区的内容与版本库中的保持一致