git简述和相关概念
约 1341 字大约 4 分钟
2025-07-04
Git是世界上最优秀的分布式版本控制系统,没有之一!
是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
那什么是版本控制系统捏?
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
Git的诞生
1991年Linux创建了开源的Linux系统,Linux的壮大是靠许多程序员在不同的地方为Linux编写代码的,Linux的代码需要被管理。 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码! 你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。 不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。 安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。 Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的: Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。 Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。 历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
CVS和SVN都是集中式的版本控制系统,而Git是分布式的版本控制系统,两者有什么区别?
集中式版本控制系统最大的问题就是必须联网后才能工作,分布式版本控制系统在每台工作电脑上都是一个完整的版本库。
安装git
我自己使用的windows系统所以以下是windows系统的安装方式,以后有机会再进一步拓展Linux和mac的安装方式todo
Windows安装git
- GIT官网上下载安装程序,一路next到底即可(简单吧!)
- 安装完成后在开始菜单或者右键鼠标快捷菜单 中有Git bash 和 Git GUI,点击Git Bash出现和命令行窗口差不多的窗口即表示安装成功
- 在命令行中使用下述命令配置个人信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱地址"
使用了--global表示安装的这台计算机中所有的git仓库都会使用这个配置,自然,可以对不同仓库使用不同的用户名和邮箱 进入指定仓库的.git\目录下,执行不带--global参数的上述命令即是在该仓库中使用这个配置
GIT有关概念
- 工作区:工作区可以理解为你的文件夹
- 暂存区:当修改后的文件add操作后即进入了暂存区
- 版本库:暂存区中的文件提交后(commit)后即进入了本地版本库,push后进入远程仓库
GIT的使用
版本库的创建
什么是版本库?
版本库其实就是仓库。
其实就相当于一个文件夹,只不过git将它管理了起来,该文件夹下的所有文件的新增、修改、删除,git都能够知道并且进行跟踪,如果有需要还能帮助还原到历史的某一个时刻(commit)
- 前置步骤:创建一个空的文件夹,再通过下面命令行进行初始化
git init
文件夹被git初始化后目录中会出现个 .git 目录,这个目录就是git用来跟踪管理版本库 的。(隐藏目录哦,作为攻城狮的你应该知道怎么看)