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>实际上就是让工作区的内容与版本库中的保持一致

posted @ 2020-03-24 16:42  ashen1999  阅读(131)  评论(0编辑  收藏  举报