工作区和暂存区概念
- 工作区(working directory)
就是我们建立的版本库目录。git init 该目录
即将其初始化为一个git版本库。该工作区下有一个隐藏目录.git
,即git的版本库。 - git的版本库
其中最重要的是暂存区(stage),可以理解为中间仓库。
git为我们自动创建唯一一个master
分支,以及指向master
的指针head
.
git基础已说,添加文件到git仓库需要两个命令:
git add 实际上是把文件修改添加到暂存区
git commit -m 实际上是把暂存区的所有内容提交到当前分支,即master分支
暂存区
git管理文件的修改,任何一次修改,不git add
到暂存区,是不会被git commit
提交到分支上的。修改提交之后,暂存区为空。
跟踪修改
当我们修改文件之后,可以使用git checkout -- file
命令来撤销工作区的修改,这存在两种情况:
- 还没有git add
之前,即还没有添加到暂存区,使用命令撤销修改,回到和版本库一样的状态
- 添加到暂存区之后修改,使用命令撤销修改,回到添加到暂存库后的状态。
总之,git checkout -- file
命令就是使文件回到最近一次git commit 或者 git add
的状态。
版本回退
上次说过使用命令git reset --hard HEAD^
可以回退到上一版本。
另外,git reset
还可以将修改从暂存区回到工作区,具体命令git reset HEAD file
删除文件
git rm file
git commit -m "..."