4.1Git基本操作
- git init -- 初始化仓库
要使用Git进行版本管理,必须先初始化仓库。Git是使用git init命令进行初始化的。
$ mkdir git-tutorial
$ cd git-tutorial
$ git init
Initialized empty Git repository in C:/Users/Administrator/Hello-World/git-tutorial/.git/
如果初始化成功,执行了git init命令的目录下就会生成 .git 目录。这个 .git 目录里存储着管理当前目录内容所需的仓库数据。
在Git中,我们将这个目录的内容称为“附属于该仓库的工作树”。文件的编辑等操作在工作树中进行,然后记录到仓库中,以此管理文件的历史快照。如果想将文件恢复到原先的状态,可以从仓库中调取之前的快照,在工作树中打开。开发者可以通过这种方式获取以往的文件。具体操作指令我们将在后面详细介绍。
- git status -- 查看仓库的状态
git status 命令用于显示Git仓库的状态。这是一个十分常用的命令,请务必牢记。
工作树和仓库在被操作的过程中,状态会不断发生变化。在Git操作过程中时常用git status 命令查看当前状态,可谓基本中的基本。下面让我们来实际查看一下当前仓库状态:
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
结果显示了我们当前正处于master分支下。关于分支我们会在后面讲到。接着还显示了没有可提交的内容。所谓提交(Commit),是指“记录工作树中所有文件的当前状态”。
尚没有可提交的内容,就是说当前我们建立的这个仓库中还没有记录任何文件的任何状态。这里,我们建立README.md文件作为管理对象,为第一次提交做前期准备。
$ touch README.md
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
可以看到Untracked files中显示了README.md文件。类似地,只要对Git的工作树或仓库进行操作,git status命令的显示结果就会发生变化。
- git add -- 向暂存区中添加文件
如果只是用Git仓库的工作树创建了文件,那么该文件并不会被记入Git仓库的版本管理对象当中。因此我们用git status命令查看README.md文件时,它会显示在Untracked files里。
要想让文件成为Git仓库的管理对象,就需要用git add命令将其加入暂存区(Stage或者Index)中。暂存区是提交之前的一个临时区域。
$ git add README.md
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
将README.md文件加入暂存区后,git status命令的显示结果发生了变化。可以看到,README.md文件显示在Changes to be committed中了。
- git commit -- 保存仓库的历史记录
git commit命令可以将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。