安装之前我们先来了解下git,并且要反问下:我为什么要使用git?svn用的不是很好嘛,我干嘛要换?。。。

问1:为什么需要版本控制系统?

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。大部分时候我们使用最频繁的还是对源代码文件的版本控制,其实任何文件都可以纳入版本控制系统。

1).更好备份:相比于将不同版本的文件以时间等命名存储备份,使用版本控制系统能节约更多的磁盘空间,因为版本控制系统不是文件的复制备份,而是差异备份,文件快照备份等等。

2).更好的回溯:可以将某个文件回溯到之前的任何一个提交状态,甚至将整个项目回退到过去的某个时间点。

3).更好的团队协作:这是我认为最重要的,团队共同开发一款软件,如果没有版本控制,那是不可想象的,简单点的可以使用文件传输到某一位核心开发者库上进行合并,但如果团队的成员是分散在全国各地的,甚至是世界各地的,比如linux内核的开发,那完全是没办法进行的。使用版本控制后,可以比较文件的变化系统,可以查询是谁提交了新的更新,并且可以由项目负责人管理提交,进行更新的管理。

问2:相比于svn, git有什么优势?

其实这里真要说出谁比谁好,真的很难说,从不同的角度和不同的需求可能都会有不同的观点,这里我也只能说明两者的适用情景。

svn属于集中化的版本控制系统:有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的成员通过客户端连接到这台服务器,进行文件上传和更新。

优点:a.使用简单,比较符合我们的常规思维(我当年从SVN转向Git也花费了不少时间)。b.同步代码比较简单,只要一步操作即可。

缺点:a.丢失数据的风险:最显而易见的,由于集中化的特点,如果版本库的服务器磁盘发生故障等,你不能保证所有的数据已经有人提取出来了,最坏的情况是彻底的丢失整个项目的所有历史更改记录。b.网络中断的情况下,协作就无法进行了,因为无法连接服务器进行上传和更新。

git属于分布式版本控制系统:客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。

  优点:a.由于任何人每次提取操作,实际上都是一次对代码仓库的完整备份,因此近乎所有的操作都可以在本地执行,速度就是相当的快,并且可以在网络断开的时候操作仍然不受影响,可以频繁的进行提交更新,等到有网络的时候再上传到远程的镜像仓库就可以了。b.文档很详细,并且命令行的提示也很到位,用起来比较得新应手,而且很多的设置与操作跟linux操作很相近(不亏是linux之父创造的)。c.git的分支模型,相当的轻量级,被称为“必杀技”。

  缺点:a.每个开发人员都拥有所有的代码,不利于核心代码的保密(如果有重要代码需要保密,则不建议使用git)

git的历史

当年教授给我们将git历史的时候,感觉特别有意思,还特崇拜linux之父Linus Torvalds。linux内核开发是来自世界各地的热衷于开源的人士,开始他们使用的版本控制系统是一个商业产品BitKeeper,并免费给linux使用,但由于后期开发人员越来越庞大等等原因,而BitKeeper毕竟是商业产品,终于在2005年与linux内核开源社区结束了合作关系,Linus Torvalds一气之下就自己开发了一款适合linux内核开发管理的版本管理系统Git。现在Linus Torvalds其实很少写代码了,而是将别人提交的代码合并到内核中去,更多时间里,就是在对别人提交的代码说“Yes”或者“No”,或是指导别人该在什么地方进行修改。

git在linux的安装:(以下涉及到的软件基本都使用yum安装,如果你的机子不联网,建议你先建本地yum源:http://www.cnblogs.com/shenliang123/p/3829044.html

1.先从官网 http://git-scm.com/download 上下载git-1.7.3.tar.gz

2.将文件git-1.7.3.tar.gz复制到/opt/git/gitinstall下,并解压

[root@sl gitinstall]# tar -zxvf git-1.7..tar.gz

3.进行配置安装

[root@sl gitinstall]# cd git-1.7.
[root@sl git-1.7.]# ./configure
[root@sl git-1.7.]# make
[root@sl git-1.7.]# make install

----------------------------------------------------------------------------------------------------

但在执行make操作时报错:缺少gcc,yum安装gcc

[root@sl ~]# yum -y install gcc

重新执行make操作,还报错,缺少zlib.h。我们可以查看是否存在zlib.h

[root@sl ~]# whereis zlib

如果存在则会输出zlib路径。不存在则输出空白,以下是安装详情:

1.从http://www.zlib.net/下载zlib最新版:zlib-1.2.8.tar.gz

2.解压,编译

[root@sl gitinstall]# tar -zxvf zlib-1.2..tar.gz
[root@sl gitinstall]# cd zlib-1.2.
[root@sl zlib-1.2.]# ./configure
[root@sl zlib-1.2.]# make
[root@sl zlib-1.2.]# make install

--------------------------------------------------------------------------------------------------------------------------------------------

重新执行make,make install,无错误输出,验证安装是否成功:

[root@sl git-1.7.]# whereis git
git:/usr/local/bin/git
[root@sl git-1.7.]# git -version
git version 1.7.

以上输出就意味着安装成功了!

Linux(CentOs6.4)安装Git的更多相关文章

  1. 5.CentOS6.6安装git

    额,因为公司的项目存放在gitlab上,所以要求员工必须会使用git 这里简单说下git在 linux下的安装,使用的说明,我会单开一篇文章来写 1.首先卸载掉CentOS6.6自带的1.7.1版本的 ...

  2. CentOs6.8安装Git并安装oh my zsh

    (一)git安装 1.下载git2.4.9或其他版本 Index of /pub/software/scm/git git各个版本下载链接: https://www.kernel.org/pub/so ...

  3. Linux(CentOS6.7) 安装MySql5.7数据库

    linux(CentOS6.7) 环境Mysql 5.7.17安装教程分享给大家,供大家参考,具体内容如下: 1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/ ...

  4. CentOS6下安装git

    Ubuntu12.04中默认没有安装Git.需要自行安装. 1. 安装Git 1.1 Ubuntu12.04下 可以使用apt-get方式安装,也可以下载源代码安装[1],我们这里使用apt-git安 ...

  5. Linux -- Centos6 yum安装相关问题与处理

    Centos6 yum安装相关问题与处理 由于要使用yum下载文件,突然yum下载不了想要的文件,想更换yum源,结果得重新安装yum 来自本人GitHub地址https://github.com/m ...

  6. Linux(CentOS6.7) 安装MySql5.7数据库 图文教程

    linux(CentOS6.7) 环境Mysql 5.7.17安装教程分享给大家,供大家参考,具体内容如下: 1系统约定安装文件下载目录:/data/softwareMysql目录安装位置:/usr/ ...

  7. linux系统下安装Git

    Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.而国外的GitHub和国内的Coding都是项目的托管平台.Git 是 Linus Tor ...

  8. linux上如何安装git

    安装依赖软件 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc yum instal ...

  9. 在Linux系统上安装Git

    Git是目前流行的非常好用的版本控制工具,这里介绍两种安装方式,1.yum安装,2.从github上下载最新的源码编译后安装 一.yum安装 1.在Linux上是有yum安装Git,非常简单,只需要一 ...

随机推荐

  1. JS操作未跨域iframe里的DOM

    这里简单说明两个方法,都是未跨域情况下在index.html内操作b.html内的 DOM. 如:index.html内引入iframe,在index内如何用JS操作iframe内的DOM元素? 先贴 ...

  2. 又到周末了,我们一起来研究【浏览器如何检测是否安装app】吧

    前言 扯淡 这个月比较倒霉,我送了女朋友一台笔记本电脑作为生日礼物,结果15天一过电脑就坏了,悲剧的我还把电脑盒子给扔了!淘宝不给换更不给退 于是被女朋友臭骂了一过星期后,今天本来在公司有任务的,但是 ...

  3. Html + Css思维导图

    最近整理的一份Html和Css的思维导图,共享给初学者使用. 各个知识点的详细案例介绍,后期会分阶段依次发布,希望对大家学习html和css有帮助. 如果对文中的知识点有异议,欢迎随时拍砖! 后期也回 ...

  4. GPS各种地图坐标系转换(转载)

    http://my.oschina.net/fankun2013/blog/338100 地图供应商比较多,产生了许多地图坐标.地图坐标正确转换是个问题.在之前开发地图应用的时候发现从WGS84坐标系 ...

  5. Imperva WAF使用笔记

    添加IP白名单 在对自己公司网站进行安全测试时会被WAF拦截,如果把WAF彻底停掉就无法拦截到外部的攻击了. 此时可以添加IP地址白名单,白名单内的IP对网站发起扫描时不会做拦截.

  6. iOS之关于 srand() 和rand()

    srand(seed)用来将随机序列的起始点设为seed srand((int)time(0))表示以当前时间对应的int值为随机序列起点,这样每次运行程序,由于起点不同才可以得到不同的随机数 tim ...

  7. 自定义控件之圆形的image

    需要添加点击事件的的时候在自定义的控件中覆写OnTouchEvent():方法进行点击事件的分发 package com.example.administrator.mvp.ui.widget; im ...

  8. Oracle 释放flash recovery area的四种方法

    早上收到一台Linux服务器磁盘告警邮件以及监控告警日志程序发来的邮件.检查过后,发现Linux服务器中一个分区没有空间了.主要原因是由于昨晚程序员做升级时,产生了大量的归档日志,导致联机重做日志无法 ...

  9. RedHat 4下无resize2fs命令

    在Red Hat Enterprise Linux AS release 4上进行LVM扩展分区时,发现RedHat 4下没有resize2fs,不过可以用ext2online替换resize2fs. ...

  10. Linux 查看服务器开放的端口号

    在讨论这个问题前,我们先来了解一下物理端口.逻辑端口.端口号等计算机概念. 端口相关的概念:   在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型.物理端口指的是物理存在的端口,如ADSL ...