Git概述

一直以来想出一个Git的教程,去年写过一篇,后来没了下文,烂尾了。最近忙里偷闲,还是想把这个Git系列写一遍,这次争取写完。

本文我主要想先简单介绍下Git,然后介绍下Git的安装。

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

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

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公司的逼迫,估计我们还不一定见到这么优秀的分布式版本控制工具。值得一说的是,2016年5月11日BitKeeper宣布以Apache 2.0许可证开源(新闻链接http://www.solidot.org/story?sid=48171),我很好奇BitKeeper宣布开源的时候他的老板心中是何感受?

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的优势还有很多种,这里我就不再一一列举了,有兴趣的大家自行搜索。

Git的安装

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

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版本号,运行界面如下:

Ubuntu安装Git

ubuntu安装Git就是一句话:

sudo apt-get install git

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

sudo apt-get install git-core

安装成功之后,输入git —version查看git版本号。

基本配置

不管是Windows安装还是Linux安装,安装好之后,我们都先通过如下两行命令做一个基本配置,配置的信息将展示在我们每一次提交的后面,所以不要使用不方便公开的信息,如果不配置以后每次提交的时候都会让你输入用户名和密码,配置方式如下:

$ git config --global user.name "zhangsan"    
$ git config --global user.email "111@qq.com"

这个配置会保存在当前用户目录下的.gitconfig文件中,如下:

OK,本文我们就先说到这里,有问题欢迎留言讨论。

参考资料:

1.《GitHub入门与实践》 2.《Pro Git》

本文分享自微信公众号 - 玩转JavaEE(gh_d1ca11234a30)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏二次元

萌音影视 - 在线影视应用

虽然在线影视网上也是遍地都是,但这并不影响我自个写一个,这样以后自己看番也方便,毕竟自己动手才能丰衣足食,又能学习到新的知识,岂不美哉。

59020
来自专栏A周立SpringCloud

微服务部署:蓝绿部署、滚动部署、灰度发布等部署方案对比与总结

在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得...

91490
来自专栏一个会写诗的程序员的博客

Apache RocketMQ QuickStart

RocketMQ作为一款分布式的消息中间件(阿里的说法是不遵循任何规范的,所以不能完全用JMS的那一套东西来看它),经历了Metaq1.x、Metaq2.x的发...

18640
来自专栏鹅厂少年的奇妙之旅

【2018手Q春节红包系列】春节排行榜性能优化小记

这次优化,从接触学习压测工具开始,到昨天优化告一段落,断断续续持续了有3、4天左右。感谢团长、双太、drog、温总在优化过程中提供的帮助和建议!

27860
来自专栏依乐祝

.NET Core实战项目之CMS 第四章 入门篇-Git的快速入门及实战演练

上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概...

12800
来自专栏Java架构师学习

详细剖析kafka分布式消息系统

1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveM...

38180
来自专栏微信终端开发团队的专栏

Android微信智能心跳方案

前言: 在13年11月中旬时,因为基础组件组人手紧张,Leo安排我和春哥去广州轮岗支援。刚到广州的时候,Ray让我和春哥对Line和WhatsApp的心跳机制进...

1.4K100
来自专栏hotqin888的专栏

电子规范管理系统(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

19210
来自专栏CSDN技术头条

Otto开发初探——微服务依赖管理新利器

【编者按】时下,Vagrant被DevOps软件开发商广泛作为开发阶段的本地软件开发环境,而在本文,CERT Division高级研究员介绍的Otto则是Vag...

240100
来自专栏数据和云

122Architecture 全面解读 - 第一篇 全局解析+ADG+IM模块

Oracle自发布12.1之后,就一直声称要全面转云,在之后的三四年里,一直杳无音信,大家都在猜测,Oracle又在憋什么大招,果然,2017阳春三月,大招来了...

40890

扫码关注云+社区

领取腾讯云代金券