转自:http://www.cnblogs.com/yubinfeng/p/5182271.html
前面介绍了两款代码管理工具VSS和SVN,这两种管理工具在很长一段时间曾为我们的代码管理提供了便利,本篇介绍一款思维方式完全不同(也可以说不合常理)的版本控制系统——Git。可以说Git目前非常火,这与设计者剑指偏锋的设计思想有很大关系。Git采用发散的思维管理代码,最大的特点就是分布式,他可以让来自不同地区的开发者共同完成一个作品,让每个开发者都可以发挥个性,同时又可以由发起者(即项目管理者)统一发布新版本。各个地区的开发者,还可以离线开发,这样版本管理系统之所以火,也和当今社会万众创新的氛围分不开。通过Git你可以尽情的发挥想象力,开源的春天已经到来,让我们启航吧!
1. Git简介
名称:Git (Git的读音为/gɪt/,开源、免费、分布式的版本控制系统)
厂商:Linux 的缔造者 Torvalds 发起,为了更适合开源项目而设计,最初为Linux 版本,现已可以在Linux,Unix,Max,Windows各种系统中使用
功能:分布式版本控制、元数据方式存储而非文件方式、GIT的内容存储使用的是SHA-1哈希算法能确保代码内容的完整性等,太多了让我们慢慢挖掘。
优点:
(1)分布式:说起优点,大多都是相对其它管理工作比如SVN等,最大的优点就是分布式,最大化开发个性;
(2)轻负载:因为强化个体并且使用元数据存储而非文件形式,公用服务器压力较小;
(3)高性能:能快速处理分支,合并简单快捷;并且分个分支的冲突解决非常方便。
(4)完整性:在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。
(5)离线式:离线工作是Git一个重要特点,这种模式在以前独占式的版本控制的年代,是无法想象的。
(6)还有很多……
缺点:说起缺点,就现有的几种版本控制系统相比较,几乎找不出明显缺点,唯一明显的就是代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息,这也是作者在设计之初的目标,以开源共享的大同世界为目标。再要说缺点为就是主观方面的,比较学习难度稍大点(这个不要怕,后面会慢慢介绍),整个使用过程比较不符合常规思维(这个也不要怕,总要推陈出新的嘛 )。
升级:开源项目,管理规范,升级及时。
推荐: (从小型到大型项目均适用,小到小小的代码片段,大到Android、facebook、PHP、spring、mybatis等等)
2. Git基础
Git虽然这么多优势,但大多教程中都使用命令方式操作,这让初学者望而却步,本篇尽量使用图形化界面介绍。
Git是一个全新思维的版本控制系统,如果你之前使用VSS,CVS,SVN等工具,那么你一定不要把相似的概念作对比,最好忘记以前的合并、分支之些具体实现模式。(这点慢慢展开)
Git的近乎所有操作都在本地进行,即离线式。不论你在何地,都可以投入开发之中,那么如何控制版本,这点不要担心,在你网络方便的时候上传更改即可。
Git在上传数据时进行一系统计算,最小化的数据传输,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。
Git拥有较高的可靠性,只要你养成定期推送的习惯,你可以随意在本地计算机上做实验,不用担心弄丢数据,数据如何恢复,后面会慢慢介绍。
Git的文件有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库 中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
Git直接记录快照,而非差异比较。Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。
如果没有理解,没关系,慢慢来。
3. Git 基本工作流程
(1). 在工作目录中修改某些文件。
(2). 对修改后的文件进行快照,然后保存到暂存区域。
(3). 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
因此,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;
如果作了修改并已放入暂存区域,就属于已暂存状态;
如果自上次取出后,作了修改但还没有放到暂存区域,就 是已修改状态。
后面我们会进一步了解其中细节,并学会如何根据文件状态实施后续操作,以及怎样跳过暂存直接提交。
4.Git的安装前准备
4.1 安装包简介
终于进入到激动人心的时刻了,通过上面的介绍,看着很神秘的东东,马上就要进入我们的视野中了。
在本系列文章中,我只介绍如何在Windows系统下安装Git(虽说Windows下使用多Linux/Unix工具需要模拟环境,带来很多不便,但是国内大多同学还是使用Windows),其他操作系统的同学请参照其他文章。
服务器端工具:
Git 官方的服务端 需要使用命令行创建版本库等操作。
gitstack 第三方开源服务器端,专为Windows订制,集成了较成熟悉版本的Git,并且Web方式的操作界面,无需指令。
客户端工具如下:
TortoiseGit (TortoiseSVN的兄弟)图形化界面做的最好的Git客户端
Git Extensions (Visual Studio 2013/2015集成的Git客户端)让您不使用命令行控制的 Git 的图形化客户端
git-cola 是一个Python开发的时尚和强大的git图形用户界面
EGit - (Java开发者Git客户端插件)利用EGit可以在 Eclipse中实现分行,合并,复制和同步库
还有很多,我们会重点介绍TortoiseGit 和 Git Extensions
4.2 安装包下载
我们下载Windows环境下我们所需的安装包
(1)服务器端
对于服务器端环境配置这方面,网上现有的资料并不是很多,特别是在Windows环境下的服务器搭建
喜欢使用Git原生版本的同学,请参照下面几篇文章:
Windows+Git+COPSSH 方式,URL:http://blog.csdn.net/aaron_luchen/article/details/10498181 http://blog.csdn.net/code_style/article/details/38764203
对于Git命令行方式操作比较全的资料,URL:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
顺便赋上Git官方的下载地址
Git服务器端Windows版本安装包 (包含32位和64位,根据你的服务器操作系统选择)
Git-2.7.0.2-64-bit.exe
官网URL:http://git-scm.com/download/win
(注意:我们下面将要使用的服务器端环境并不需要下载原版)
不过COPSSH也不是免费的,并且上面的环境下还需要使用一些命令来完成部分操作(我并不是歧视使用命令行的方式操作,首先这是一个入门文章,力求简单,再者服务器端的搭建使用Linux更合适)
下面,我在本篇文章中为了让大家尽快用上Git,我们也剑走偏锋使用第三方纯界面的服务器端gitstack ,他集成了Git,因此我们的安装下载,并不需要专门下载Git服务器端了
因为集成了apache和Git,这个安装包有点大126M,耐心下载吧
准备下载的第一个安装包:
gitstack 开源集成Git的界面服务器端
官网URL:http://gitstack.com/download/
下载过程如下图:
(2)客户端
TortoiseGit安装包 和 中文语言包(包含32位和64位,根据你的客户端操作系统选择,我以64位为例介绍)
官方URL:http://tortoisegit.org/download/
TortoiseGit-1.8.16.0-64bit.msi
TortoiseGit-LanguagePack-1.8.16.0-64bit-zh_CN.msi
下载过程如下图:
下载完成的三个安装包如下:
5. 服务器端安装
准备工作就绪,我们开始安装服务器端,双击 GitStack_2.3.8.exe
注意:此时,如果有这个提示,我们就需要暂时关闭占用80端口的服务了,怎么关闭呢,先找到什么服务占用了80
运行,CMD,输入netstat -aon|findstr "80" 查找到 占用80的程序的PID
然后在任务管理中,找到 停止即可
然后一路安装完成,会自动打开管理界面
默认用户和密码admin登录
这个界面是多么熟悉啊,和SVN相似,创建 版本库 、创建组、创建用户、设置
到此我们服务器的安装就完成了,使用GitStack创建基于Windows服务器端就是这么简单。下面我们介绍它的使用。
5. Git服务器端GitStack的使用
GitStack的使用非常简单,和SVN服务端没多大区别,先看一下设置
完成设置后,我们创建一个版本库和一个组及2个用户
将2用户加入该组
接下来,我们给版本库授权组MyGitGroup,于是,这两个用户就拥有该版本库的操作权
先创建一个版本库 MyGitObject,并配授权组或用户(这里我们授权组,就拥有该组下的两个用户了)
将刚才建的 组 MyGitGroup加入该版本库
设置组的读写权限
到此服务端的配置完成,我们可以看到 ,在设置的版本库目录中,多了一个我们刚创建的版本库文件夹 MyGitObject.git
喜欢使用命令行的同学,仍然可以在这里打开操作 ,可以看到 GitStack的唯一作用,就是帮我们提供了一个http服务+一个界面化配置而且,我们的核心还是Git
6.Git客户端的安装
客户端工具众多,我们选择前面已经下载好的“小乌龟”
找到前面下载好的TortoiseGit安装包和语言包
安装客户端开始
全程下一步,完工,然后安装语言包(喜欢英文版的可以完工了)
语言包,下一步,完成!
语言包安装完成后,我们在开始菜单中找到 TortoiseGit的设置
选择语言为:简体中文
客户完工!@!
7.Git客户端TortoiseGit的使用
继续介绍TortoiseGit的使用
7.1 获取服务器版本库
先在本地计算机创建一个Git的工作目录 F:\GitWorkArea
打开目录在空白处右击,可以看到 TortoiseGit的菜单,初始操作可以选择Git克隆,即获取服务端版本库,也可以选择创建一个新的版本库
因为之前我们在服务端已经创建过了一个版本库,我们选择 克隆。
在这里URL我们输入 ,之前服务器端创建的版本库地址,点确定后,这时需要我们认证一下用户和密码,这是必须的嘛 ,不然谁都可以克隆我们的版本了
用户和密码验证完成后,版本库克隆成功。
7.2 创建新文件
接下来,必须是迫不及待的创建一个文件,开始我们的Git之旅了
随便写点什么,然后保存,关闭。
7.3 提交
提交我们新建的文件到版本库,非常简单,在工作目空白处右击
然后点击,提交 到 master
这时,会有一个提示,需要设置一个交互的mail
在弹出的设置上,完成后确定
然后填写备注,记得养成良好的使用习惯,提交要写备注哦,然后选中文件,确定
提交完成~
7.4 查看变更日志
查看日志前,我们在工作内再次创建一个文件,提交;然后再次打开该文件,修改一下内容提交。
在工作目录右击 选择 TortoiseGit ,打开“显示日志”
在日志窗口,我们可以看到三次变更的备注等信息,非常全面
先到这里吧,不知不觉凌晨4点了,关于TortoiseGit的使用会让你不断惊喜的,下篇会继续介绍分支的建立,分支间的灵活切换,合并等等非常实用的功能。
8.本节要点:
本节内容比较多,首先让我们对Git这一版本控制系统有了一个初步的认识,为了避免许多文章中一入手就是各种命令行,让初学者望而却步。我选择了从一个最简单的服务器环境配置入手,即GitStack来创建Windows下的Git服务器端,随后介绍了我们熟悉的"小乌龟"版本的客户端工具,即TortoiseGit的安装及基本使用。下节更多实用的功能等着我们。
如果喜欢我的博文 ,记得点赞哦,也可以加QQ群交流,群号:467189533