Git使用指南
Li Yanrui
v0.1,20080728 liyanrui.m2@gmail
前言
Git是什么
非常简单地说,Git是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。所谓版本控制系统(Version Control System),从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。
2005年,Torvalds开始着手开发Git是为了作为一种过渡方案来替代BitKeeper,后者之前一直是Linux内核开发人员在使用的版本控制工具,当时由于自由软件社区中的许多人觉得BitKeeper的使用许可证并不适合自由软件社区的工作,因此Linus决定着手开发许可证更为自由灵活的版本控制系统。尽管最初Git的开发是为了辅助Linux内核开发的过程,但是现在很多其他自由软件项目中也使用了Git实现代码版本管理,譬如,X.org项目、许多的项目、Ruby项目等。
为什么使用版本控制系统
版本控制系统是为懒人准备的,它让懒人们比那些善于备份文档的勤劳人拥有更干净的文件系统以及更多的可以活着的时间。
本文档主要内容
在第1章中讲述如何使用Git管理自己的个人文档,主要是初步熟悉Git的诸多概念及其日常基本命令的使用。第2章中主要讲述如何基于Git实现多人协作的项目开发模式,以此扭转当前实验室成员在项目研发中各自为政或不能有效沟通的现状。第3章讲述如何利用Git强大的项目分支管理功能实现良好风格的项目协同开发模式。第4章为Git使用之FAQ,用于记载在本实验室推广使用Git过程中诸位同学所遇到的一些细节问题。
Contents
第1章使用Git管理个人文档1
1.1何种文档需要保存1
1.2建立项目仓库1
1.3关于建立Git仓库的一些细节3
1.4仓库与工作树4
1.5在项目中工作4
1.6查看版本历史5
1.7撤销与恢复7
1.8如何使用Git帮助文档8
1.9总结8
第2章基于Git的团队协同开发9
2.1两个人如何协同9
2.2如何解决仓库合并冲突10
2.3三人以至更多人如何协同12
2.4M2GE的协同开发13
2.5总结14
第3章项目分支管理15
3.1如何产生项目分支15
3.2分支的合并16
3.3M2GE新的协同开发模式16
3.4总结17
第1章使用Git管理个人文档
本章讲述如何使用Git管理我们的个人文档,用以展示Git的一些基本功能,并且秉承学以致用、用以促学的精神,引导大家积极地将Git应用于日常学习与工作中的文档备份。仿温水煮蛙之古例,此章乃温水也。
1.1何种文档需要保存
凡需要持续变动的文档皆可作为项目并交付于Git进行管理。由于Git可以详细地记录对于项目的各种修改并提供了功能强大的版本控制,因此愈是修改较为频繁的文档,愈是有必要将其纳入Git的管理之下。
理论上,Git可以保存任何文档,但是最善于保存文本文档,因为它本来就是为解决软件源代码(也是一种文本文档)版本管理问题而开发的,提供了许多有助于文本分析的工具。对于非文本文档,Git只是简单地为其进行备份并实施版本管理。1.2建立项目仓库
欲使用Git对现有文档进行版本控制,首先要基于现有文档建立项目仓库。下面以本文档的版本管理为例,演示如何将其作为项目并纳于Git的版本控制之下。
本文档是由T E X生成的,对应T E X源文档皆位于$HOME/work/m2doc目录下,下文为叙述方便,以Bash变量$WORK代替该目录。首先需初始化Git仓库:
$cd$WORK
$git init
Git会作出以下回应:
Initialized empty Git repository in$PROJECT/.git/
上述操作的结果是在$WORK目录下创建了一个.git隐藏目录,它就是所谓的Git仓库,不过现在它还是空的。另外$WORK目录也不再是普通的文档目录了,今后我们将其称为工作树。
下面应当有选择地将工作树中的一些文档存储至Git仓库中。由于Git在向仓库中添加文档时并非是简单地文档复制过去,势必要将所添加文档进行一番处理,生成Git仓库所能接受的数据格式,Git称这个过程为"take a snapshot"(生成快照)。若将工作树下所有文档(包含子目录)生成快照,可采用以下命令:$cd$WORK
$git add.
所生成的快照被存放到一个临时的存储区域,Git称该区域为索引。使用git-commit命令可将索引提交至仓库中,这个过程称为提交,每一次提交都意味着版本在进行一次更新。git-commit最简单的用法如下:
$git commit
git使用详解执行上述git-commit命令时,Git会自动调用系统默认的文本编辑器,要求你输入版本更新说明并保存。请记住,输入简约的版本更新说明是非常有必要的,它就像剧本一样,可以帮助你快速回忆起对项目的重大改动。
对于简短的版本更新信息,可以使用git-commit的“-m”选项,如下:
$git commit-m"你的版本更新信息"
上述过程即为建立Git仓库的一般过程,我将其总结为图1.1
所示之流程:
2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论