是时候来系统的介绍一下Git了。毫无疑问,Git是目前最优秀的分布式版本控制工具,木有之一,可是我见到的很多人还是不会用,我的老东家每天忍受着SVN带来的痛苦,却迟迟不愿切换到Git上,个人感觉,许多中小公司不用Git,不是因为Git不好,而是他们的项目经理不会用(不喜勿喷)。

OK,那么今天我们就先来简单介绍下Git的发展史以及Git的优点,然后再来看看Git的安装。

1.Git诞生记

Git诞生于2005年4月,由Linux的作者Linus Torvalds花费了两周的时间用C写了一个分布式版本控制系统,这就是Git1.0,大牛写代码就是这么666666。其实早在Git之前,这个世界就已经有一些非常流行的版本控制工具(VCS),比如CVS,SVN,ClearCase等,然而这些工具要么运行慢,要么要收费,都不是Linus Torvalds的菜,当时,有一个公司叫做BitMover,该公司有一款产品叫做BitKeeper,这是一个分布式版本控制工具,但是这是收费的,不过这是一个有情怀的公司,老板Larry说服Linus Torvalds使用BitKeeper来管理Linux内核源码,于是,在2002到2005年之间,Linux内核开发团队一直使用BitKeeper来管理Linux源码。可是在开发的过程中,Linus Torvalds有一个叫做安德鲁·垂鸠的小伙伴不安分了,他写了一个简单程序,可以连接BitKeeper的存储库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的授权。合作无法继续,于是Linus Torvalds决定自己开发一套分布式版本控制工具,就是Git,至于这个分布式版本控制工具为什么叫Git,Linus Torvalds并没有给出一个让所有人满意的解释,倒是很多开发者一直尝试去给Git一个合理的解释,常见的一个解释就是Global Information Tracker(中文译作全局信息追踪器)。如果当年不是BitMover公司的逼迫,估计我们还不一定见到这么优秀的分布式版本控制工具。值得一说的是,今年5月11日(2016年5月11日)BitKeeper宣布以Apache 2.0许可证开源(新闻链接http://www.solidot.org/story?sid=48171),我很好奇BitKeeper宣布开源的时候他的老板心中是何感受?

2.Git的优势

Git一出世立马就成为最流行的分布式版本控制工具,2008年4月,GitHub正式上线,GitHub是一个利用Git进行版本控制,专门用于存放代码与内容的共享虚拟主机服务,GitHub上线之后,许多开源项目都移植到GitHub上了,不管你从事那门语言的研发,都会在GitHub上找到你需要的项目吧!OK,说了这么多,接下来我们也该说说Git这个分布式版本控制工具的优势了。Git主要有以下几个优势:

1.与传统的集中式版本控制工具不同,分布式版本控制工具不需要联网就可以工作,每台电脑都是一个完整的版本仓库。

2.Git可以胜任上万人的开发规模,这个大家看看GitHub中的开源项目就知道了,不需要我多说。

3.性能优异。我们前面说过Linus Torvalds之所以不愿意使用CVS、SVN等版本控制工具就是因为这些工具的性能太差。所以Linus Torvalds在开发Git时就决定要革除积弊,确保Git的运行效率。笔者在上家公司做开发时,深受SVN的毒害,但是公司还是不愿意迁移到Git上,我猜测是由于项目经理不会用。

4.保证项目的安全。我们知道,在SVN之前还有一个集中式版本控制工具叫做CVS,这个CVS有一个问题,就是你的文件有的时候会莫名其妙的丢失,做开发的各位筒子都知道,如果你的项目中突然有一个文件不见了,你不出一身汗才怪。所以,Git使用SHA1这种通用的加密散列函数来对数据库中的对象进行命名,从而来确保文件的安全。

5.好用的分支。用过Git的人都知道Git中的分支用起来有多么爽,分支在我们的项目中用的非常普遍,可是SVN虽然也有分支,但是却不能像Git用的这么爽。这个做过项目的筒子都知道。我们到后文会给大家详细介绍分支的用法。

OK,Git的优势还有很多种,这里我就不再一一列举了,有兴趣的大家自行搜索。。。。。。。。。。。。。。

3.Git的安装

作为一个屌丝码农,我的本子还是windows,不过我的本本装了双系统,所以我这里就只给大家演示一下Windows下如何安装Git以及Ubuntu下如何安装Git。

1.windows7安装Git

windows安装Git整体上来说有两种解决方案

A:安装Cygwin(下载地址http://cygwin.com/)用来模拟Linux运行环境,但是Cygwin大配置非常麻烦,容易出错,所以一般不推荐这种方式。

B:安装独立的Git,也就是msysGit(下载地址https://git-for-windows.github.io/),这就是一个简单的exe文件,一路next就安装成功了。安装成功后,在你的开始菜单中找到Git Bash,如下:

点击Git Bash,点击运行,输入git --version查看git版本号,运行界面如下:

2.Ubuntu安装Git

ubuntu安装Git就是一句话:

sudo apt-get install git

早期的Linux版本直接运行下面的代码即可:

sudo apt-get install git-core

安装成功之后,输入git --version查看git版本号,运行界面如下:

OK,今天我们就介绍这么多,下篇博文我们再来介绍版本仓库的创建以及文件提交等等。

以上。

Git使用完全解析(一)的更多相关文章

  1. Git原理入门解析

    前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的: 一.Git 简介 Git 是当前流行的分布式 ...

  2. git 常见命令解析

    转载自http://www.rainkong.net/post/git-image.html 之前用的都是svn ,git还是要了解的,万一哪天要用了呢

  3. Git——常用场景解析

    总结:本篇文章从初识GitHub.Git,实践GitHub的五种常用场景,分别是:git for windows安装,git配置,克隆远程代码到本地,上传本地代码到远程以及Git的常用指令.相信Jam ...

  4. Git show-branch显示提交信息

    git中查看日志,我们用的比较多的就是 git log 以及带一些参数,如: 以一行显示提交日志: $ git log --pretty=oneline 显示最后的几次提交日志: $ git log ...

  5. 使用 git 进行项目管理(只管理代码,不管理项目配置)

    使用Git进行项目管理 1. 从服务器pull项目,本地还原工程 从服务器拉取仓库及分支 git clone git@github.com/helloWorld.git git branch -a g ...

  6. sublime 集成git插件,及git常用命令

    以前用了很久的totoiseSVN,显然不够高大上,开发界的版本装x利器还得是git.然而git的命令行对没怎么用过linux的人可能觉得还不如用gitGUI,可是当你知道sublime可以集成git ...

  7. git命令详解( 七 )

    此为git命令详解的第七篇 这章我们可以来逐渐揭开 git push.fetch 和 pull 的神秘面纱了.我们会逐个介绍这几个命令,它们在理念上是非常相似的.   git push的参数 git ...

  8. Git rebase使用

    目录 rebase的优点和缺点 分支内合并多个commit为一个新commit使用: 命令: 使用: 将其他分支合并到主分支,表现为线性: 将其他分支多个commit合并到主分支,并形成一个新comm ...

  9. 如果非得了解下git系统... - 实践篇

    git的定义是一个内容寻址文件系统.内容.寻址.文件.系统,该来的总会来的… 本文旨在通过实践来介绍.git文件夹中的目录及文件功能,属git基础知识.但在此基础上可解决各git使用过程中可能遇到的问 ...

随机推荐

  1. vs2012布局问题

    问题背景: 北大青鸟ASP.Net视频中,老师提到可以通过更改属性PageLayout的值,来实现页面布局由默认的FlowLayout(流式布局)而成为GridLayout(网格布局),即系统控件安排 ...

  2. android5.0问题

    2042-2247/system_process W/AudioTrack﹕ AUDIO_OUTPUT_FLAG_FAST denied by client libzte-ril.so has tex ...

  3. 【DataStructure In Python】Python模拟链表

    最近一直在学习Python和Perl这两门语言,两者共同点很多,也有不多.希望通过这样的模拟练习可以让自己更熟悉语言,虽然很多时候觉得这样用Python或者Perl并没有体现这两者的真正价值. #! ...

  4. Outlook接收qq的邮件

    1.先去qq邮箱,设置,账户 开启pop3服务,假如之前开启过,最好关闭之后重新开启 最新版本的必须使用邮箱的独立密码才可以收取邮件 (否则就算你之前开通了,也无法用你的qq账号和密码收取邮件的) 2 ...

  5. 结构体dict_index_t;

    /** InnoDB B-tree index */ typedef struct dict_index_struct dict_index_t; /** Data structure for an ...

  6. VS2012、VS2010、VS2008常用的快捷键

    下面为大家带来VS各个版本常用的快捷方式,希望对大家开发过程中有帮助: 强迫智能感知:Ctrl+J: 强迫智能感知显示参数信息:Ctrl-Shift-空格: Ctrl+E,D ----格式化全部代码 ...

  7. BZOJ_1616_[Usaco2008_Mar]_Cow_Travelling_游荡的奶牛_(DP)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1616 给出一张图,有些点不能走,给出起始点和结束点,以及时间,求在该时间到达结束点的方案数. ...

  8. Memcached‘do_item_get’函数安全漏洞

    漏洞名称: Memcached‘do_item_get’函数安全漏洞 CNNVD编号: CNNVD-201401-175 发布时间: 2014-01-15 更新时间: 2014-01-15 危害等级: ...

  9. 常用的Web服务器

    常用的Web服务器有IIS.Apache.Tomcat.Jboss.Resin.Weblogic.WebSpher IISIIS服务是Windows产品自带的一种免费的Web服务器,安装配置简单,主要 ...

  10. 【C++】计算所有小于N的勾股数组合,可以写入txt文件保存,每组占一行。

    #ifndef PYTHAGOREAN_H_ #define PYTHAGOREAN_H_ #include <iostream> class Pythagorean { public: ...