Git Community Book 通译 (一)

Git Community Book 翻译 (一)

 

 

使用Git作为我自己主要的版本控制工具有快半年了

有时也想分享一些自己的经验,但是自己的文笔有限,写不什么好文章。

于是想翻译一些Git的文章,我看到“Git Community Book”这本书还没有人翻译。

我想,就是它吧:)

http://book.git-scm.com/

 

 

今天随手译了一点,我就先把它贴上来吧

以后会有时间会慢慢完善的。

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第一章

简介

欢迎使用GIT

欢迎来使用Git, 它是一个快速的分布式版本控制系统。

这本书为那些初学者尽快熟悉Git,提供了一个良好的起点。

此书将以介绍Git如何存储数据做为开始,让你了解它和其它版本控制系统有什么不同的背景。这大约要花你20分钟的时间。

 

接下来,我们会讲一些Git的基本用法,那些你将在90%的时间都在使用的命令。这些东东能给一个不错的使用的基础,也许这些命令就是你将使用的全部命令。这一节大约会你30分钟的时间来读。

 

其后,我们会讲一些稍微复杂的“Git中级用法”,这些用法也许会替换掉前面的基本用法。 这些用法你可会觉得像魔术一样,但是如果你了解前面的基本用法后,你可能会觉得很爽。

 

如果前面的这些东东你都掌握了,我们就会讲“Git的高级用法”,这些高级用法也许大多数人很少使用,但是在特定的环境会非常有用。学习这些用法(命令),你将能获得全面的日常Git知识; 你将能成为Git大师。

 

即然你学会了Git, 我们将会讲“在Git中工作”。我们将要学习 Git 配合脚本、部署工具、编辑器和其它工具一起工作。这一节将帮助你将Git 集成进你的工作环境。

 

最后我们会有一系列的文章:“low-level documentation”,这些可能对那些Git hacker 有用,

包括Git 的内核和协议如何运作等等。

 

 

 

GIT对象模型

SHA

所有用来表示项目历史信息的文件是通过一个40字符(40-digit)“对象名”,像这样的“6ff87c4664981e4397625791c8ea3bbb5f2279a3”。你会在Git里到处看到这种“40字符”字符串。每一个“对象名”都是通过对对象内容用SHA1做哈希计算得来的,(SHA1是一种密码学的哈希算法)。这样就意味着两个不同内容的对象不可能有相同的“对象名”。

 

这样做有会有几个好处:

1)  Git比较对象名,可以很快的判断两个对象是否相同。

2)  因为在每个仓库(repository)的“对象名”的计算方法都完全一样,如果同样的内容存在两个不同的仓库中,就会存在相同的“对象名”下。

3)  Git还可以通过检查对象内容的SHA1的哈希值和“对象名”是否相同,来判读对象内容是否正确。

 

The Objects

每个对象(object) 包括三个东东:类型,大小和内容。大小就是指内容的大小,内容取决于对象的类型,有四种类型的对象:"blob""tree" "commit" "tag"

 

1)“blob”用来存储文件数据,通常是一个文件

2)“tree”有点像一个目录,它管理一些“tree”或是 blob”(就像文件和子目录)

3)一个“commit”指向一个"tree"making it as what the project looked like at a certain point in time。它包括一些关于时间点的元数据,如时间戳、最近一次提交的作者、指前上次提交(commits)的指针。

4)一个“tag”是来标记某一个提交(commit) 的方法。