上一篇讲了如何安装和配置 Git,现在来开始了解如何使用 Git。
我们通过一个简单的例子来学习。
初始化仓库
首先在命令行里 cd 进入需要进行版本控制的目录,为了演示,我将新建一个目录,然后进入目录。
输入 git init 进行初始化。
这样就成功的初始化了一个 Git 仓库。
所谓仓库(repository),其实就是一个目录,里面的文件就像一个个物品,当文件更新时,新版本就摆出来,然后把旧版本收起来放在一个专门的地方。
这个地方就是上图中的 .git 目录。Linux 默认是不显示隐藏文件及目录的(在 Linux 中,文件或目录的名字前面加个 . 就是隐藏了),可以执行 ls -a
查看。.git 目录里面保存着文件所有的历史记录。如果把它删了,所有文件的历史记录都将消失,平时没事不要去动它。
我们来看看这个仓库的状态,执行 git status
。
git status
是查看当前仓库状态的命令,可以看见现在还没有任何文件在里面,所以显示无文件要提交。
添加文件
现在我们在仓库里面创建一个文本文件。我创建了一个 first.txt 文件,内容是 第一版内容
。
再次执行 git status
:
可以看见有 未跟踪的文件。现在执行 git add first.txt
,将 first.txt 文件添加到仓库。
不是说把文件放在仓库(目录)里面就算添加了,而是需要 git add
。这个操作就相当于登记,只有在仓库里面登记了,这个被登记的文件才真正属于这个仓库。
现在我们再次执行 git status
:
可以看见新文件需要提交变更。
如果想提交某个文件夹,直接 git add 目录名
;如果想提交当前目录下的所有文件,可以 git add .
。
提交变更
提交变更可以使用 git commit
命令,但最好附上一段说明信息,比如:
附上说明信息是一个很好的习惯,当需要还原前面版本的时候可以很容易知道需要还原到哪个版本。
再次修改并提交
提交完之后,再次修改文件,比如修改成 第二版内容
。
git status
可以看见 first.txt 是修改状态。让我们再次添加修改:git add first.txt
,可以看见红字变绿了,接下来第二次提交。
检出版本
现在发现第二版写错了,想回到上一版重新写。
可以先看看我们提交了哪些版本:git log
。
git log
是显示仓库的历史记录。上图我们可以看见有一长串的 ID、作者、日期 和提交的 信息。
既然我们需要回到上一版,也就是第一版,就需要用到第一版的 ID。
ID 有 40 位,其实并不用全部打上去,只需要开头 5 位即可。
我们需要用到检出命令:git checkout
。
可以看见只需要第一版开头的 5 位 ID 就可以执行检出了。现在文件的内容变成了 第一版内容
。
如果想要返回最新的那版,可以运行 git checkout master
。
忽略文件
有时候我们不想一些文件加入版本控制,比如在 Windows 系统上生成的临时文件、编译生成的中间文件、日志文件等,这时候就可以使用 .gitignore。
创建一个名为 .gitignore 的文件,里面可以添加比如:
# 忽略日志文件
*.log
# 忽略目录
build/
# 排除目录下特定的文件
test/*.o
.gitignore 文件本身需要添加进版本控制里面。
如果不想自己手动写,GitHub 有各种语言的忽略列表。
拓展阅读:
Git - 重置揭密