史上最简单的Git⼊门教程
1. 版本控制系统简介
1.1 何为版本控制
版本控制最主要的功能就是追踪⽂件的变更。它将什么时候、什么⼈更改了⽂件的什么内容等信息忠实地了已录下来。每⼀次⽂件的改变,⽂件的版本号都将增加。除了记录版本变更外,版本控制的另⼀个重要功能是并⾏开发。软件开发往往是多⼈协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提⾼协同开发的效率。并⾏开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分⽀与合并的⽅法有效地解决。
下⾯举⼀个简单的例⼦,⼤家都⽤过office
word写过⽂档,在写⽂档的过程中,可能需要删除原有⽂档的某⼀个段落,但⼜担⼼该段落之后会再次⽤到,所以,新建⼀个⽂档的副本,然后进⾏修改。之后,可能会循环重复该流程多次,那么我们的⽂档库可能就会变成下⾯的这个样⼦:
过了⼀段时间,你可能需要回某次删除的内容,但是,你已经记不清修改到底在哪个⽂档中,只能⼀个⼀个的查阅。如果⽂档的版本特别的多的话,相信这种查的过程会让你抓狂。⽽且,这些不同版本的⽂档,不论何时你都是不该删除的,因为,你不知道未来的哪个时间,你可能就会再次⽤得到。
最原始的代码管理⽅式与上⾯的情况类似。
传统⽂档/代码管理⽅式的缺点:
版本管理混乱;
版本回退繁琐;
版本合并困难;
… …
版本控制系统就是为了解决类似于上⾯的问题⽽发明的,版本控制系统的基本功能就是记录每⼀次的修改内容、修改时间、修改⼈、版本、修改说明等等信息,然后通过⼯具⽅便的在不同的版本之间进⾏切换、合并、回退等等操作。
所以,为了能够⾼效、快捷的管理⽂档或者代码库,很有必要抛弃原来的“⼿⼯版本管理”⽅式,进⼊⾃动化的版本管理时代。
1.2 分布式VS集中式
⽬前,主流的版本控制系统有两种架构:分布式系统和集中式系统,它们分别是什么?有什么区别呢?
1. 集中式版本控制系统:
先说集中式版本控制系统,版本库是集中存放在中央服务器的,⽽⼲活的时候,⽤的都是⾃⼰的电脑,所以要先从中央服务器取得最新的版本,然后开始⼲活,⼲完活了,再把⾃⼰的活推送给中央服
务器。中央服务器就好⽐是⼀个图书馆,你要改⼀本书,必须先从图书馆借出来,然后回到家⾃⼰改,改完了,再放回图书馆。
集中式版本控制系统最⼤的问题就是必须联⽹才能⼯作,遇到带宽不好的情况是,提交、更新较⼤⽂件可能会⼗分的缓慢。⽽且,集中式版本控制系统容灾性差,万⼀中⼼服务器硬盘出现的数据丢失,那后果是很严重的。
2. 分布式版本控制系统:
分布式版本控制系统与集中式版本控制系统之间最⼤的区别就是,分布式版本控制系统不需要“中⼼服
务器”,每⼀台电脑本地都保留了完整的版本系统,每次代码的提交、回退、分⽀合并都不需要服务器的参与,本地版本系统就可以搞定。⽽且,多个不同电脑上的不同版本可以通过⽹络进⾏合并、更新。
分布式版本系统的优点显⽽易见,⾸先,它可以完全独⽴的⼯作,不需要服务器的参与;其次,它具有很⾼的安全性,某⼀台电脑的数据丢失后,可以通过其他电脑进⾏恢复。
现实情况下,分布式版本控制系统也需要⼀个“中⼼服务器”,但是,该服务器的作⽤仅限于为数据的交互提供便利性。
⽬前,⽐较流⾏的集中式版本控制系统包括SVN、CVS等,这两款系统都是开源免费的,时⾄今⽇,仍然有很多⼈在使⽤。
该⽂档的主⾓Git属于分布式版本控制系统,其简单、⾼效,并且功能完备,是⽬前最为流⾏的版本控制系统。
2. Git初体验
2.1 Git诞⽣记
说起Git的起源,那绝对是⼀个传奇故事。话说,当年Linus⾃从1991发明了Linux之后,直到2002年都是通过⼿⼯的⽅式(打补丁的⽅式)来管理Linux代码,随着Linux代码量的指数增长,Linus有些⼒不从⼼,出于开源精神和个⼈癖好(极度讨厌集中式版本控制系统的性能低下),他选择了⼀个商业版本的分布式版本控制系统BitKeeper。当然,BitKeeper是免费提供给Linus使⽤的。
直到2005年,两家都相安⽆事,但是,⼀起事件激怒了BitKeeper公司,并收回了BitKeeper对于Linux的免费使⽤权(具体事件是某位Linux内核开发者试图破解BitKeeper的数据协议)。
但,从不服输的Linus没有向BitKeeper公司低头,⽽是⾃⼰⽤了两周的时间,⽤C语⾔开发了⼀套分布式版本控制系统,那就是Git。
⼀个⽉之内,Linux的全部代码已经交由Git处理了,Linus真乃⼤神也啊!
之后,2008年,随着GitHub⽹站的兴起,git也随之兴盛起来,发展到现在成为最好⽤的版本管理⼯具。
2.2 安装Git
Git⽀持⽬前所有主流的操作系统,当然,使⽤Git之前需要⾸先安装Git,下⾯分别介绍⼀下:
1. Linux系统
如果你使⽤的系统为Ubuntu,那么安装Git其实相当的简单,只需⼀条命令:
sudo apt-get install git;
2. Windows系统
Windows系统的话,可以在下载合适的版本,就⾏安装,安装过程⼗分的简单。
安装完成之后,回到桌⾯,右键,选择Git Bash Here,正常情况下,会弹出Git的交互终端;
安装完之后,还需要简单的配置,命令如下:
$ git config --global user.name "Your Name"
$ git config --ail "email@example"
上⾯两条命令主要是为了表明⾃⼰的⾝份信息,这样在代码库中可以清楚的查看每⼀条提交的相关⼈员信息。
注:git
config命令的–global参数,⽤了这个参数,表⽰你这台机器上所有的Git仓库都会使⽤这个配置,当然也可以对某个仓库指定不同的⽤户名和Email地址。
2.3 创建Git版本库
版本库,英⽂名:repository,物理意义上,它其实就是⼀个⽬录,我们把需要控制管理的代码、⽂档放⼊到该⽬录下,然后,该⽬录下的所有⽂件的添加、删除、修改、回退等信息都可以管理起来。
创建⼀个Git版本库⼗分的简单,只需要两步:
1. 选择⼀个合适的地⽅,创建⼀个空⽬录:
注意:如果你使⽤Windows系统,为了避免遇到各种莫名其妙的问题,请确保⽬录名(包括⽗⽬录)不包含中⽂。
2. 执⾏git init创建Git版本库:
注意:学习Git时,尽量不要使⽤项⽬代码做实验,否则,操作不当会出现数据丢失。
简单两步,⼀个Git库就创建好了,下⾯我们往库⾥加些⽂件:
ubuntu使用入门教程
上⾯命令,创建⼀个⽂件,并添加了⼀些内容。
下⾯说⼀下,如何将⽂件加⼊到版本库中,分为两步:
3. 使⽤git add 命令将⽂件加⼊到Git库中:
$ git
如果有多个⽂件需要添加到Git库中的话,可以多次调⽤git add命令。
2. 使⽤git commit命令,将⽂件提交到仓库中:
$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed,2insertions(+)
create mode
git commit
命令的-m选项,⽤于表⽰本次提交的说明信息,说明信息最好统⼀格式,这样对于后续的Bug管理、版本信息追踪都会⼤有好处。
3. Git本地管理
3.1 提交修改
之前我们已经添加了⽂档,现在进⼀步开始修改该⽂档,并学习⼀下git
status命令的使⽤⽅式。
打开⽂档,在第⼀⾏添加单词distributed,如下:
现在尝试使⽤git status,查看仓库的状态:
通过git
status可以让我们随时掌握git仓库的状态,上⾯的输出表⽰已经修改,但是,还未暂存到git仓库。
我们可以通过git diff查看当前的修改内容,输出格式为linux内核补丁所⽤的格式:
现在,可以提交我们的修改了,所使⽤的命令还是git add和git
commit。⾸先,使⽤git add添加⽂件:
$ git
再次,运⾏git
status命令,可以看到版本库已经没有需要提交的内容了,⼯作⽬录是clean的。
如果,git commit完之后,发现提交说明写的有问题,可以通过git commit --amend命令,修改最近⼀次的提交说明:使⽤git log查看最近的提交记录:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。