本节书摘来自异步社区《git学习指南》一书中的第2章,第2.2节,作者: 【德】rené preißel(普莱贝尔) , bjørn stachmann(斯拉赫曼)著,更多章节内容可以访问云栖社区“异步社区”公众号查看
在这里,我们建议你最好能为接下来的git测试单独开辟一个项目。总之应先从一个简单的小项目开始。在我们这个小小的示例项目中,first-steps目录下只有两个文本文件,如图2.1所示。

图2.1 我们的示例项目
在开始摆弄这个玩具项目之前,我们建议你最好先做一个备份!尽管在git中,想要造成永久性的删除或破坏也不是件容易的事情,而且每当你要做某些“危险”动作的时候,git通常也会发出相应的警告消息。但是,有备无患总是好的。
2.2.1 创建版本库
现在,我们首先需要创建一个版本库,用于存储该项目本身及其历史。为此,我们需要在该项目目录中使用init命令。对于一个带版本库的项目目录,我们通常称之为工作区。
init命令会在上述目录中创建一个名为.git的隐藏目录,并在其中创建一个版本库。但请注意,该目录在windows资源管理器或mac finder中可能是不可见的。
图2.2 本地版本库所在的目录
2.2.2 首次提交
接下来,我们需要将foo.txt和bar.txt这两个文件添加到版本库中去。在git中,我们通常将项目的一个版本称之为一次提交,但这要分两个步骤来实现。第一步,我们要先用add命令来确定哪些文件应被包含在下次提交中。第二步,再用commit命令将修改传送到版本库中,并赋予该提交一个散列值以便标识这次新提交。在这里,我们的散列值为2f43cd0,但可能会有所不同,因为该值取决于文件内容。
2.2.3 检查状态
现在,我们来修改一下foo.txt文件的内容,先删除bar.txt文件,再添加一个名为bar.html的新文件。然后,status命令就会显示出该项目自上次提交以来所发生的所有修改。请注意,新文件bar.html在这里被标示成了未跟踪状态,这是因为我们还没有用add命令将其注册到版本库。
如果我们还想看到更多细节性的内容,也可以通过diff命令来显示其每个被修改的行。当然。有很多人可能会觉得diff的输出是个非常难读的东西。幸运的是,在这一领域,我们有许多工具和开发环境可用,它们可以将这一切显示得更为清晰(见图2.3)。
图2.3 图形工具(kdiff3)中的diff报告
2.2.4 提交修改
接下来,所有的修改都必须要先被归档成一次新的提交。我们要对修改过的文件和新文件执行add命令,并对要删除的文件使用rm命令。
现在再次调用status命令,我们会看到所有的修改已经被纳入了下一次提交中。
然后用commit命令提交这些修改。
2.2.5 显示历史
log命令可用来显示项目的历史,所有提交都会按时间顺序被降序排列出来。