git中checkout 新理解
1、遇到的问题?
今天在进行Git操作时,在linux环境下我想把某一个分支的,某一个 文件或者类 单独回滚,发现网上很多命令都是一次回退整个 文件夹,跟windwos下不同,在IDEA中我们直接可以用 图形化操作点git Rollback就可以,但是linux下,需要我们敲一个回退的命令,这个命令是什么呢?
目标:将这 release.sh 一个文件 单独回退
之前对于git checkout的认识停留在可以执行以下操作:
git checkout 分支名 # 用于切换分支
git checkout -b 分支名 # 用于创建分支并切换
git checkout HEAD
以下为自己的理解:
git实际上维护的是一串历史记录,每个历史标号都是一条记录的id,而不同的分支表示不同的指针,指向某一个历史标号,沿着那个标号往前,可以查看所有的历史记录。而HEAD也是一个指针,只是我们经常情况下将其和分支指针指向同一个历史记录,而使用git checkout命令就是用来移动HEAD指针的。
解决问题:
git checkout HEAD [ filename ]
或者git checkout - - [ filename ]
撤销对工作区所做的一切更改,这样以前所有的修改就都没有,慎用!