git-learner/notes/2.2-git_stage.md

34 lines
1.0 KiB
Markdown
Raw Permalink Normal View History

2024-08-15 22:08:20 +02:00
### 2.2.2
.git/index 是包含索引的目录树,这个目录树记录了文件名,文件等状态信息
![版本库](https://lsky.mhrooz.xyz/2024/08/15/cde4b123b19fe.png)
`HEAD`指向当前的分支,图中的master中有一个git独特的存储方式,可以在不同的commit之间切换. master就是一个分支
git add就是把工作去的内容先加到暂存区,分支还没有被更改
如果想更改分支里的内容,就要commit中
`git rm --cached <file>`从暂存区中删除文件
`git reset HEAD` 替换暂存区为HEAD指向的分支的内容(清除暂存区)
`git checkout -- <file>` 从暂存区中拿出文件替换工作区的内容
`git checkout HEAD .`或者是`git checkout HEAD <file>`用分支中的文件替换暂存区和工作区的文件
### 2.2.3
`git ls-tree`查看HEAD指向的目录树
`git ls-files`查看暂存区的目录树
`git diff`比较暂存区和工作区的不同
`git diff HEAD`比较HEAD分支和工作区的不同
`git diff --cached` 比较暂存区和HEAD分支的不同