Git——Linus的第二个伟大作品

Linux之父Linus是坚定的CVS反对者,他也同样地反对SVN。这就是为什么在1991~2002这十余年间,Linus宁可以手工修补文件的方式维护代码,也迟迟不愿使用CVS的原因。

2002年至2005年,Linus顶着开源社区精英们口诛笔伐的压力,选择了一个商业版本控制系统BitKeeper作为Linux内核的代码管理工具。BitKeeper不同于CVS和SVN等集中式版本控制工具,而是一款分布式版本控制工具。

分布式版本控制系统最大的反传统之处在于,可以不需要集中式的版本库,每个人都工作在通过克隆建立的本地版本库中。也就是说每个人都拥有一个完整的版本库,查看提交日志,提交,创建里程碑和分支,合并分支,回退等所有操作都直接在本地完成而不需要网络连接。每个人都是本地版本库的主人,不再有谁能提交谁不能提交的限制,加上多样的协同工作模型(版本库间推送,拉回,以及补丁文件传送等)让开源项目的参与度有爆发式增长。

2005年发生的一件事最终导致Git的诞生。在2005年4月,Andrew Tridgell(即大名鼎鼎的Samba的作者)试图对BitKeeper进行反向工程,以开发一个能与BitKeeper交互的开源工具。这激怒了BitKeeper软件的所有者BitKeeper公司,要求收回对Linux社区免费使用BitKeeper的授权。迫不得已,Linus选择了自己开发一个分布式版本控制工具以替代BitKeeper。

Linus以一个文件系统专家和内核设计者的视角对Git进行了设计,其独特的设计让Git拥有非凡的性能和最为优化的存储能力。完成原型设计后,在2005年7月26日,Linus功成身退,将Git的维护交给另外一个Git的主要贡献者junio C Hamano,直到现在。

Git虽然是在Linux下开发的,但现在已经可以跨平台运行在所有主流的操作系统上,包括:linux,Mac OS和Windows等。

时间: 2024-10-05 06:17:23

Git——Linus的第二个伟大作品的相关文章

SVN版本控制器相关知识

一. 版本控制 1.1. 疑问 到底什么是版本控制软件? 我们为什么要使用版本控制软件? 协作开发过程中,代码应该存放在哪里? 协作开发过程中,领导要看项目怎么办? 1.2. 什么是版本控制 不知道你们有没有考虑过这种问题?公司的程序员在开发项目的时候,每个人开发的模块都是不一样的,那么他们开发完成以后,如何将各自的代码整合在一起呢? 这个时候呢?就引入了一个概念叫版本控制. 所谓的版本控制你可以通俗的理解成,它是软件项目开发过程中用于储存我们所写的代码以及记录修改历史的软件. 1.3. 为什么

Git入门一

GIT简介 Linus的第二个伟大作品.2005年由于BitKeeper软件公司对Linux社区停止了免费使用权.Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了. 目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian… Eclipse上使用Git的项目数量也已经超过了使用SVN的仓库数. 在windows上如何安装Git 你可以从官网或者网上下载Git,这里我共享了Git-1.9.4-pr

01-Git简介和仓库创建

Git简介 Linus的第二个伟大作品.2005年由于BitKeeper软件公司对Linux社区停止了免费使用权.Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了. 目前使用Git作为版本控制的开源软件:Linuxkernel,Android, jQuery, Ruby on Rails,Debian- Eclipse上使用Git的项目数量也已经超过了使用SVN的仓库数. 为什么选用GIT 1.        分布式,强调个体 2.        公共服务器压力和数据量都不会

Git仓库的使用

Git简介 什么是版本仓库? 能够一直监视代码的改变,并存储这些文件以便将来引用的一种机制(或者说是软件). 记录了哪些开发人员对项目进行了修改.修改该的具体时间.实际修改的代码内容.甚至时恢复特定修改过的文件或整个项目. 使用版本控制工具能够避免:手动备份多个版本.难以恢复以前的正确版本.解决代码冲突困难.代码管理混乱.难以追溯问题代码的修改人及修改时间 - 常见的版本控制工具:CVS.SVN.GIT 什么是Git? 是一款自由开源的分布式版本控制工具,能够敏捷地处理任何或大或小的项目 是Li

Git常用操作指南

目录 前言 Git简介 安装之后第一步 创建版本库 本地仓库 远程仓库 版本控制 工作区和暂存区 版本回退 撤销修改 删除文件 分支管理 创建与合并分支 解决冲突 分支管理策略 状态存储 多人协作 Rebase 标签管理 创建标签 操作标签 自定义Git 忽略特殊文件 配置别名 配置文件 总结 前言 因为工作需求,最近又重新温习了一下Git操作,遂总结了一篇Git常用操作指南,方便日后学习查阅,本博客精简提炼了在开发过程中Git经常用到的核心命令,主要参考了<廖雪峰老师的Git教程>,希望对大

Git 教程 - Git 基本用法

Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录 cd project  # 进入到项目目录 git init  # 初始化 git 仓库.此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息 初始化提交 touch README git add .  # 将当前目录添加到 git 仓库中, 使用 git add -A 则是添加所有改动的文档 git com

Git手册

GitUserManualChinese - Robin Wiki GitUserManualChinese Git 用户手册(1.5.3 及后续版本适用) 翻译: 罗峥嵘 (Robin Steven) < [email protected] > 英文版本: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html Contents Preface 前言 Chapter 1. Repositories and Branch

Git专题--系统的学习Git之一

本文为整理自:伯乐在线 1.Git详解之一:Git起步 2.Git详解之二:Git基础 3.Git详解之三:Git分支 4.Git详解之四:服务器上的Git 5.Git详解之五:分布式Git 6.Git详解之六:Git工具 7.Git详解之七:自定义Git 8.Git详解之八:Git与其他系统 9.Git详解之八:Git与其他系统 Git详解之一:Git起步 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置

开源分布式版本控制工具 —— Git 之旅

转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-tourofgit/ Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的复杂性,并由此拔高了学习成本,某种程序上影响了开发者使用或者迁移 Git 的项目进度,笔者同样感同身受,这也是本文的出发点. 不同于各种 Git 用法指南,本文在介