每次看到别人写Git的文章,同学中也有用Git感觉很高大上的感觉,工作中用的是SVN,周末倒腾了一下Git,Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 与其他的版本控制工具 CVS, SVN,VSS相比,它采用了分布式版本库的方式,可以离线提交代码,代码保存在本地,可以享受SVN联网能进行的一系列操作,如果你需要推送到服务器只需要push一下即可,每个人都是一个独立的仓库。

Git的由来

说到Git,不得不提的一个人是Linus Torvalds,Linus跟Linux差了一个字母,这哥们就是Linux的核心作者,芬兰人,现在随着Linux和Git的迅猛发展,大家都对Linus大牛的了解就更深刻一些。从91开始创建了开源的系统软件Linux一直到2002年,Linus一直都是手动的合并代码,,哥们手动了十年,抛开技术不谈,就这个耐性就值得佩服。Linus认为CVS集中式控制太慢不适合控制,而且需要联网,后来2000年出现的SVN也同样找到了Linus的弃用,2002年的时候由于Linux发展的原因,手工合并代码太慢采用了商业系统软件BitKeeper,Linus一直使用BitMover公司的BitKeeper SCM(软件配置管理)进行Linux运行管理。Linus在一份声明中曾表示,“我一向不热衷于开发开放源控制工具,而现在正是这一缺憾阻碍了我跟大多同行的交流。”他说,“BitKeeper正好解决了这一燃眉之急,使得工作效率倍增,其可复制传播的本性方便我与任意同行之间交流和合作。”

当然,并不是每一位自由软件或开放社区人士都与托沃兹一样喜欢BitKeeper,因为它是享有知识产权的一套程序。使用拥有知识产权的工具来管理开放源软件的开发早已引发了激烈的争议。事实上,持有不同意见的主要是开放社区的两大阵营,一个是以Linus为代表的实用主义者,他们主张只要是合适的工具就拿来使用,不管是版权产品还是开放软件;而另一阵营是以理查德·斯托尔曼(Richard Stallman)为代表的纯自由软件论者,他们认为使用版权软件违背了自由软件的本质。

在有关开放源社区是否应该对BitKeeper进行“逆向工程”的争议进行之时, Samba CIFS(通用因特网文件系统)服务器项目的联合创始人Andrew Tridgell开发了一款新程序SourcePuller,与BitKeeper数据通用。Tridgel作为OSDL(开放源开发实验室)的第二任掌门人,追随者自然是有样学样。这个时候BitMover非常愤怒,收回来商业版BitKeeper在Linux的使用权,与之对应的提供了一个功能相对差点的Linux开源版本,并威胁说“如果你开发类似的软件,就不能使用BP”

自此Linus对BP好感全无,闭关修炼两周之后用C写了额一个分布式控制系统(C没学好的我只能仰望了),之后的Linux的系统源码就由Git管理了,Git成为最流行的分布式版本控制系统GitHub在2008年上线之后它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby on Rails,Android,YUI等。

Window下的Git

原本Git的使用范围只适用于Linux/Unix平台,但在Windows平台使用其工作的时候需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂(我没弄过),后来Google把模拟环境和Git都包装好了发布了一个msysgit的针对Window的客户端(我想说微软哪里去了),最开始托管在code.google.com,现在源码和下载程序托管在http://msysgit.github.io/。

下面放一下自己的安装过程吧:

我下载的是最新的1.9.4

基本信息介绍,直接next:

选择路径之后直接next:

将图标放在桌面,方便使用,next:

默认的使用Git Bash进行版本控制:

默认的window窗体样式:

d

等待几分钟:

安装完成:

最后测试一下是否成功,双击Git Bash,红色是计算机名,如果出现了则证明安装成功了:

Git的简单介绍的更多相关文章

  1. eclipse IDE使用git方法简单介绍

    eclipse下使用git插件上传代码至github 1.eclipse下安装git eclipse  git 插件的安装. 点击 Help->Install New Software-> ...

  2. 项目管理---git----快速使用git笔记(一)------git的简单介绍

    最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...

  3. Git——Git的简单介绍【一】

    官方网站 Git官网 https://git-scm.com/ GitHub https://github.com GitLab https://about.gitlab.com/ SVN https ...

  4. linux下git的简单运用

    linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...

  5. osc的git服务器简单使用。

    1.创建本地仓库 mkdir dir cd dir git init 初始化仓库 2.创建远程仓库 进入远程仓库去创建 3.关联本地仓库与远程仓库 git remote add osc git::.. ...

  6. 攻城利器 —— Carthage简单介绍

    01 Carthage简单介绍 主页:https://github.com/Carthage/Carthage.git 作者:Justin Spahr-Summers等 版本:0.18 目标:用最简单 ...

  7. [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine

    Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine ​Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 ​Trac. ...

  8. Git 的简单使用

    一直在使用Git,仅限于简单的使用,但还是记不住几个简单.在这边总结一下,加深印象,也方便查找. 安装Git 平常主要在windows和ubuntu上工作,就以windows为例,Linux和Mac平 ...

  9. app 下载更新 file-downloader 文件下载库的简单介绍和使用

    app 下载更新 file-downloader 文件下载库的简单介绍和使用 今天介绍一个下载库:file-downloader 文件下载库 说明: * 本文内容来自原 file-downloader ...

随机推荐

  1. c++ 栈(顺序表)

    栈可以用顺序表(数组)也可以用链表来储存内容,本文采用顺序表(数组)来保存内部元素.代码如下:  1 #include <iostream> 2 using namespace std; ...

  2. html中元素的id和name的区别(2016-1-22)

    HTML中元素的Id和Name属性区别 一直以来一直以为在html中,name和id没什么区别,今天遇到一个坑才发现(PHP获取不到表单数据,原因:元素没有name,只定义了id),这两者差别还是很大 ...

  3. [js]DOM 篇

    DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model).它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作 ...

  4. 虚拟机spark集群搭建

    RDD弹性分布式数据集 (Resilient Distributed Dataset) RDD只读可分区,数据集可以缓存在内存中,在多次计算间重复利用. 弹性是指内存不够时可以与磁盘进行交互 join ...

  5. Java反射机制demo(三)—获取类中的构造函数

    Java反射机制demo(三)—获取类中的构造函数 1,获取类中所有的构造函数 如下面的代码中所示,这个类中显式的构造函数有五个. 空构造: public UserInfo() 带参构造有四个: pu ...

  6. Linux C函数库参考手册

    目录 第1章 字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ascii码字符) isblank(测试字符是否为空 ...

  7. jdk1.8安装后查看Java -version出错

    最近在电脑行安装了多个jdk的版本 分别是jdk1.6,jdk1.7,jdk1.8三个版本,在配置环境变量的时候,选择的是jdk1.7; 但是奇怪的是,当我在cmd中输入java -version后, ...

  8. DP Training(Updating)

    感觉前面做了那么多$dp$全是自己想的还是太少啊…… 好像在LZT的博客上看到了不错的资源?赶紧开坑,以一句话题解为主 Codeforces 419B 第一题就开始盗图 由于只有一个交点,手玩一下发现 ...

  9. hdu 2266 dfs

    题意:在数字之间添加运算符号,使得结果等于题目中要求的Sample Input123456789 321 1Sample Output181 这题虽然看起来比较简单,但是之前和差的状态不太好表示,因此 ...

  10. 【对比分析六】JavaScript中GET和POST的区别及使用场景

    区别: GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符 POST:一般用于修改服务器上的资源,对所发送的信息没有限制 GET方式需要使用 Request ...