Git的简单介绍
每次看到别人写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的简单介绍的更多相关文章
- eclipse IDE使用git方法简单介绍
eclipse下使用git插件上传代码至github 1.eclipse下安装git eclipse git 插件的安装. 点击 Help->Install New Software-> ...
- 项目管理---git----快速使用git笔记(一)------git的简单介绍
最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...
- Git——Git的简单介绍【一】
官方网站 Git官网 https://git-scm.com/ GitHub https://github.com GitLab https://about.gitlab.com/ SVN https ...
- linux下git的简单运用
linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...
- osc的git服务器简单使用。
1.创建本地仓库 mkdir dir cd dir git init 初始化仓库 2.创建远程仓库 进入远程仓库去创建 3.关联本地仓库与远程仓库 git remote add osc git::.. ...
- 攻城利器 —— Carthage简单介绍
01 Carthage简单介绍 主页:https://github.com/Carthage/Carthage.git 作者:Justin Spahr-Summers等 版本:0.18 目标:用最简单 ...
- [转] Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine
Portable Trac 简单介绍 - 兼谈为什么不选择 Redmine Trac是一个轻量级的软件项目管理环境,如果在工作中涉及一个开发团队的管理并且关心项目管理工具的话,相信都在 Trac. ...
- Git 的简单使用
一直在使用Git,仅限于简单的使用,但还是记不住几个简单.在这边总结一下,加深印象,也方便查找. 安装Git 平常主要在windows和ubuntu上工作,就以windows为例,Linux和Mac平 ...
- app 下载更新 file-downloader 文件下载库的简单介绍和使用
app 下载更新 file-downloader 文件下载库的简单介绍和使用 今天介绍一个下载库:file-downloader 文件下载库 说明: * 本文内容来自原 file-downloader ...
随机推荐
- CSUOJ 1040 Round-number
Description Most of the time when rounding a given number, it is customary to round to some multiple ...
- 深入理解yield
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: 1 2 3 def ad ...
- poj3537 Crosses and Crosses 博弈论
大意: 给定一个\(1 * n\)的棋盘,你和对手轮流在上面画"X" 当出现三个连续的X时,最后一步操作的人胜利 不难发现,在棋盘中画了一个X之后 问题等价于两个一样的子游戏 然后 ...
- bzoj 3996 最小割
公式推出来后想了半天没思路,居然A是01矩阵..... 如果一个问题是求最值,并那么尝试先将所有可能收益加起来,然后矛盾部分能否用最小割表达(本题有两个矛盾,第一个是选还是不选,第二个是i,j有一个不 ...
- SQL 死锁进程查询
use master go declare @spid int,@bl int DECLARE s_cur CURSOR FOR ,blocked ) a ) b where a.blocked=sp ...
- MySQL Proxy 实现MySQLDB 读写分离
一.简述 MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包括:负载平衡,故障.查询分析 ...
- 前些日子用css画的大白
闲来无事用css画的一个大白...其实有一些地方偷懒了用svg去画的,因为用纯几何形状组合去画变化那么复杂的曲线不太现实.但svg曲线坐标还是自己一点点调出来的,没有用工具生成. ps:点击身体的某些 ...
- GCC 4.9.0 公布,提升 C++11 和 C++14 特性
from :http://www.oschina.net/news/51084/gcc-4-9-0 GCC 4.9.0 公布,此版本号是个主要版本号更新,包含了 GCC 4.8.x 系列和之前的 GC ...
- easyui combobox开启搜索自动完成功能
combo.json [{ "id":-1, "text":" ", "spell":"" },{ ...
- java跨域解决
import java.util.ArrayList; import java.util.List; import org.springframework.context.annotation.Bea ...