工作区和暂存区:
想要很好的使用Git,要非常清楚地一点就是Git暂存区和工作区的概念:
工作区就是我们的工作目录,比如我们的 firstRep
就是一个文件夹而已。
在我们的目录下有一个.git文件,它不属于工作区,而是我们的版本库。版本库中最重要的就是index(暂存区),还有Git自动为我们创建的第一个分支master分支,以及指向master的HEAD指针。
其实有了上述的概念,我们就很容易的知道创建仓库时候的两个命令:
第一步: git add
其实是将文件添加到暂存区;
第二步: firstRep
就是将暂存区的文件提交至当前分支(这里是 master
分支,其实我们完全可以自己创建分支,什么是分支以及如何创建见后续内容)。
简单的说就是先将文件添加到暂存区,然后将所有在暂存区的文件一次性的提交至所
在的分支上(分支的概念后面会详细讲解)。
实践练习:(为了更好的理解暂存区和工作区)
首先,我们对 readme.txt
文件进行小修改,添加一句话至 readme.txt
中:
$ cat readme.txt //cat:linux 的基本命令,查看文件内容
git is a version control tool
git is the most advaced version control system
i learn git now
然后我们再创建一个文件叫 study.txt
然后随便添加一行文字:比如:I Love You
:
$ cat study.txt
I Love You
现在在工作区(也就是我们的目录下有两个文件 :一个修改过的 readme.txt
,还有一个是新文件 study.txt
):
然后将修改过的readme.txt 和新文件study.txt 都添加至暂存区,
使用命令:git add
:
$ git add readme.txt
$ git add study.txt
我们使用命令:git status
查看仓库当前的状态:
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: readme.txt
new file: study.txt
提示我们已经将两个文件添加至暂存区,等待着 commit
(提交)。
现在两个文件的状态应该是这样:
我们使用 git commit
一次性将两个文件提交至当前分支:
$ git commit -m "commit two files one time"
[master 16e071a] commit two files one time
2 files changed, 2 insertions(+)
create mode 100644 study.txt
然后我们再来看仓库当前状态:
$ git status
On branch master
nothing to commit, working tree clean
告诉我们现在是 master
分支,没有东西等待提交(也就是暂存区没有文件了)。
小结:
今天学习了两个概念:工作区和暂存区
git add :其实是将文件添加到暂存区;
git commit : 就是将暂存区的文件提交至当前分支(这里是master分支)。
git status :查看当前的状态
参考:
【1】廖雪峰:Git教程