git restore
git restore命令 是撤销的意思
有两种用法:
- git restore file
- git restore --stage file
第一种
git restore file
撤销文件的修改 将工作区的file文件恢复至暂存区的版本(若暂存区没有,回复到仓库中的版本)
第二种
git restore --stage file
只能对暂存区中的文件使用,
将暂存区中的该文件撤销
工作区中若该文件被修改, 修改内容不受影响
(该命令几乎等同于 git rm --cached file
)
细微差别如下
git rm --cached file
是将暂存区的file文件撤销,且不再管理;
变为”Untracked file”
可使用git add加回暂存区
git retore --cached file
是将暂存区的file文件撤销,但仍然受git管理
可使用git add 加回暂存区
git checkout
git checkout
实际上操作的就是HEAD指针指向的内容
HEAD一般都是指向分支名的,但使用
git checkout hash_of_commit 可以将HEAD和分支名分离,Head指向has_of_commit的这个节点
git branch
git branch
实际上操作+
我使用相对引用最多的就是移动分支。可以直接使用 -f 选项让分支指向另一个提交。例如:
git branch -f main HEAD~3
上面的命令会将 main 分支强制指向 HEAD 的第 3 级父提交。
总结一句 : git checkout 操作的是HEAD指针 , git branch操作的是分支指针