各个区的使用
状态一
此时可以做的操作:
① 工作区 取代 本地库
git add <file> 把 文件放入 暂存区,然后 git commit
② 本地库 取代 工作区
git resotre <file>
状态二
此时已经把修改的 a.txt放入了暂存区
① git restore --staged <file> 把暂存区的文件删了
② git commit 把暂存区的文件提交到本地库,也就是本地库被取代
版本操作
主要是使用 git reset, 关于git reset 这个讲的非常好 https://www.jianshu.com/p/c2ec5f06cf1a
从未来去历史
这个比较简单,直接利用 git reset --hard HEAD 即可
从历史去未来
① 如果有哈希值 ,那么 git reset --hard 哈希值即可
② 如果哈希值找不到了,可以用 git reflog ,这个会记录下每一次操作
注意细节
git-revert 是进行新的提交,以还原其他提交所做的更改。
git-restore是关于从索引或另一个提交还原工作树中的文件。 此命令不会更新您的分支。 该命令还可用于从另一个提交还原索引中的文件。
git-reset是关于更新分支,移动顶端(tip)以便从分支中添加或删除提交。 此操作更改提交历史记录。