『git』学习笔记
基本概念
工作区
也就是仓库,是本地的目录,其中包含多个文件。
例如:路径为 /home/acs/project/
,然后 project
里面包含两个文件,分别是 main.cpp
和 readme.txt
暂存区
是一个缓冲区,可以保存工作区中的某些文件。
将文件添加到缓冲区这个行为我们称为 stage
具体保存哪些文件由开发者决定,自行添加到暂存区即可
同时,我们使用 git status
来查看状态时,会将工作区中的文件分成三种类型:
Untracked
:没有被追踪(直译)。意思是没有将下列文件添加到暂存区,其一切修改也只是在工作区发生。如果将暂存区添加到版本库,这个文件也不随之添加到版本库Changes not staged for commit
:修改没有被staged
。意思是修改没有保存到暂存区Changes to be commited
:等待持久化的修改。意思是下列文件在工作区修改之后成功上传到了暂存区,并且目前的暂存区和工作区的下列文件已经保持一致。此时可以使用commit
(持久化)命令将暂存区内的文件上传到版本库
还有一种特殊状态:
On branch master
nothing to commit, working tree clean
表示:当前的工作区的所有文件都已经 tracked
到暂存区,并且暂存区已经 stage
了全部文件的修改。然后暂存区中的文件全部都持久化到了版本库,即三区统一
版本库
接受暂存区中向上 commit
的文件
常用命令
restore
git resotre --staged filename
:将指针 HEAD
所指的版本库恢复到暂存区,也可以理解为删除暂存区中的 staged
文件。但仍然保持对文件的 track
git restore -- filename
:将文件从暂存区恢复到工作区(--
可以省略)
git rm --cached <文件名>
:取消对文件的追踪,变成 untracked