英文版 MAINTAINER / EDITOR
Bug this guy:
Scott Chacon (schacon@gmail.com)
中文版 MAINTAINER / EDITOR
liuhui998 (liuhui998@gmail.com),(http://liuhui998.com)
liu Wei (liuw@liuw.name),(http://blog.liuw.name)
Wendal Chen(wendal1985@gmail.com),(http://wendal.net)
Jiancong Guo(guojiancong0121@gmail.com),(http://www.cbpm-gw.com)
中文版网址
http://gitbook.liuhui998.com
欢迎使用
欢迎使用GIT
欢迎来使用Git, 它是一个快速的分布式版本控制系统。
这本书的目的是为那些初学者尽快熟悉Git,提供了一个良好的起点。
此书将以介绍Git如何存储数据做为开始,让你了解它和其它版本控制系统有什么不同的背景。这大约要花你20分
钟的时间。
接下来,我们会讲一些Git的基本用法
基本用法,那些你将在90%的时间都在使用的命令。这些东东能给一个不错的使用的基
础,也许这些命令就是你将使用的全部命令。这一节大约会花你30分钟的时间来读。
其后,我们会讲一些稍微复杂的Git中级用法
中级用法,这些用法也许会替换掉前面的基本用法。在你了解前面的基本用法
后, 这些看起来像魔术一样的命令,你可能会用起来很爽。
如果前面的这些东东你都掌握了,我们就会讲Git的高级用法
的高级用法,这些高级用法也许大多数人很少使用,但是在特定
的环境会非常有用。学习这些用法(命令),你将能获得全面的日常Git知识; 你将能成为Git大师。
即然你学会了Git, 我们将会讲在
在 Git中工作
中工作。我们将要学习 Git 配合脚本、部署工具、编辑器和其它工具一起工
作。这一节将帮助你将Git 集成进你的工作环境。
最后我们会有一系列的文章:low-level documentation,这些可能对那些Git hacker 有用,包括Git 的内核和协
议如何运作等等。
反馈与参与
如果你发现本书的中任何错误,或者你想参与进此书的编写,你可以给我写email schacon@gmail.com, 或者你也可
以用git得到本书的原始 档案(source) http://github.com/schacon/gitbook, 然后给我发一个补丁(patch)或者一个pull请求
译者注:如果有哪位朋友发现中译本的错误,或者是想参加此书的翻译,也可以给我发email liuhui998@gmail.com, 或者
你也可以用git得到本书的原始 档案(source) http://github.com/liuhui998/gitbook, 然后给我发一个补丁(patch)或者一个
pull请求
参考
这本书由很多不同的资料汇聚起来,如果你更愿意阅读原始的文章和资料,下面提供了它们的url:
• Git User Manual
•••The Git Tutorial
The Git Tutorial pt 2
"My Git Workflow" blog post
GIT对象模型
对象模型
SHA
所有用来表示项目历史信息的文件,是通过一个40个字符的(40-digit)“对象名”来索引的,对象名看起来像这样:
6ff87c4664981e4397625791c8ea3bbb5f2279a3
你会在Git里到处看到这种“40个字符”字符串。每一个“对象名”都是对“对象”内容做SHA1哈希计算得来的,(SHA1
是一种密码学的哈希算法)。这样就意味着两个不同内容的对象不可能有相同的“对象名”。
这样做会有几个好处:
• Git只要比较对象名,就可以很快的判断两个对象是否相同。
• 因为在每个仓库(repository)的“对象名”的计算方法都完全一样,如果同样的内容存在两个不同的仓库
中,就会存在相同的“对象名”下。
• Git还可以通过检查对象内容的SHA1的哈希值和“对象名”是否相同,来判断对象内容是否正确。
对象
每个对象(object) 包括三个部分:类型
类型,大小
大小和内容
内容。大小就是指内容的大小,内容取决于对象的类型,有四种类
型的对象:"blob"、"tree"、 "commit" 和"tag"。
••••“blob”用来存储文件数据,通常是一个文件。
“tree”有点像一个目录,它管理一些“tree”或是 “blob”(就像文件和子目录)
一个“commit”只指向一个"tree",它用来标记项目某一个特定时间点的状态。它包括一些关于时间点的
元数据,如时间戳、最近一次提交的作者、指向上次提交(commits)的指针等等。
一个“tag”是来标记某一个提交(commit) 的方法。
几乎所有的Git功能都是使用这四个简单的对象类型来完成的。它就像是在你本机的文件系统之上构建一个小的文
件系统。
与SVN的区别
的区别
Git与你熟悉的大部分版本控制系统的差别是很大的。也许你熟悉Subversion、CVS、Perforce、Mercurial 等等,他
们使用 “增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。Git正好与之相
反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。这会是在使用Git时的一个很重要的理念。
Blob对象
对象
一个blob通常用来存储文件的内容.
离线
git好的资料,感谢分享
离线
git好的资料,感谢分享
这些资料也在 KiCad 群那边也有发过,觉得一个一个下载麻烦可以去批量下载。
离线