打算全面的学习一下Git的相关知识,比较网上的资料,觉得《Git社区书》篇幅合适,覆盖全面,就是它了。
chapter1 介绍
1.Git是一个快速的分布式版本控制系统。
2.所有用来表示项目历史信息的文件,是通过一个40个字符的(40-digit)“ 对象名” 来索引的。
每一个“ 对象名” 都是对“ 对象” 内容做SHA1哈希计算得来的,(SHA1
是一种密码学的哈希算法)。
3.与SVN的区别
Git与你熟悉的大部分版本控制系统的差别是很大的。也许你熟悉Subversion、CVS、Perforce、Mercurial等等,他
们使用“ 增量文件系统” (Delta Storage systems),就是说它们存储每次提交(commit)之间的差异。Git正好与之相
反,它会把你的每次提交的文件的全部内容(snapshot)都会记录下来。
4.GIT目录与工作目录
‘Git目录‘ 是为你的项目存储所有历史和元信息的目录。每一个项目只能有一个‘Git目录‘。
Git的 ‘工作目录‘存储着你现在签出(checkout)来用来编辑的文件.当你在项目的不同分支间切换时,工作目录里的文
件经常会被替换和删除.所有历史信息都保存在 ‘Git目录‘ 中 ; 工作目录只用来临时保存签出(checkout)文件的地方,
你可以编辑工作目录的文件直到下次提交(commit)为止
chapter2 第一步
1.安装GIT
2.获得一个GIT仓库
既然我们现在把一切都设置好了,那么我们需要一个Git仓库。有两种方法可以得到它:一种是从已有的Git仓库中clone(克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。
3.分支与合并
一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫”experimental”的分支:
$ git branch experimental
如果你运行下面这条命令:
$ git branch
你会得到当前仓库中存在的所有分支列表:
experimental
* master
“experimental”分支是你刚才创建的,“master”分支是Git系统默认创建的主分支。星号(“*”)标识了你当工作在哪个
分支下,输入:
$ git checkout experimental
切换到”experimental”分支,先编辑里面的一个文件,再提交(commit)改动,最后切换回 “master”分支。
(edit file)
$ git commit -a
$ git checkout master
你现在可以看一下你原来在“experimental”分支下所作的修改还在不在;因为你现在切换回了“master”分支,所以原来那些修改就不存在了。
你现在可以在“master”分支下再作一些不同的修改:
(edit file)
$ git commit -a
这时,两个分支就有了各自不同的修改(diverged);我们可以通过下面的命令来合并“experimental”和“master”两个分支:
$ git merge experimental
如果这个两个分支间的修改没有冲突(conflict),那么合并就完成了。如有有冲突,输入下面的命令就可以查看当前
有哪些文件产生了冲突:
$ git diff
当你编辑了有冲突的文件,解决了冲突后就可以提交了:
$ git commit -a
提交(commit)了合并的内容后就可查看一下:
$ gitk
执行了gitk后会有一个很漂亮的图形的显示项目的历史。
这时你就可以删除掉你的 “experimental”分支了(如果愿意):
$ git branch -d experimental
git branch -d只能删除那些已经被当前分支的合并的分支.如果你要强制删除某个分支的话就用git branch –D;下面
假设你要强制删除一个叫”crazy-idea”的分支:
$ git branch -D crazy-idea
分支是很轻量级且容易的,这样就很容易来尝试它。
如何合并
你可以用下面的命令来合并两个分离的分支:git mer
chapter3 基本用法
chapter4 中级技能
chapter5 高级技能
chapter6 Git生态体系
chapter7 原理解析