版本管理·玩转git(快速入门git)

若是你用过Word文档写过文章,那么你必定会有这样的经历。
我以为某一段或者某一句写得不够好,可是,删掉以后我可能会后悔把它删掉了,进而又想把删掉的段落找回来,这时,你想到了一个好办法,将每次的修改都做为一个文章版本保存起来,这样虽然可以解决你的问题。可是,随着你的修改次数愈来愈多,你会发现,电脑桌面上出现了N多个Word副本,这时,你已没法分清每一个副本对应的是何时做的修改。
因而你想,若是有一个软件,不但能自动帮我记录每次文件的修改,还可让同事协做编辑,这样就不用本身管理一堆相似的文件了,也不须要把文件传来传去。若是想查看某次改动,只须要在软件里瞄一眼就能够,岂不是很方便?
既然有这样的想法,那么你就应该学习一下git。
那什么是git?
git是目前世界上最早进的分布式版本控制系统。
既然是最早进的,咱们固然是要去学好它,掌握好它了。
那么,从该篇博客开始,我将记录git教程系列,做为学习资料提供给你们。
git

咱们先说一个故事吧。
不少人都知道,Linus在1991年建立了开源的Linux,今后,Linux系统不断发展,已经成为最大的服务器系统软件了。
Linus虽然建立了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?github

事实是,在2002年之前,世界各地的志愿者把源代码文件经过diff的方式发给Linus,而后由Linus本人经过手工方式合并代码!vim

你也许会想,为何Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?由于Linus坚决地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,并且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。windows

不过,到了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了。操作系统

这就是git的诞生史了。

那首先咱们来说一下安装。
git在Linux、Mac、Win下均可以安装。
由于你们广泛都是Windows操做系统,我就以Windows环境为例。
在Windows环境下,咱们只需访问https://git-for-windows.github.io网址,便可下载git,而后一路next,安装就完成了。
安装完成后,咱们点击开始菜单,找到git,而后打开。
在这里插入图片描述
这样就说明git安装成功了。
人在江湖,岂能没有名号,在你使用git以前,要先报家门,不然代码不能提交。

$ git config --global user.name #你是谁
$ git config --global user.email #怎么联系你

在这里插入图片描述
由于我已经提交过个人用户名和邮箱了,因此,我这里打印了个人信息。从这里咱们知道,这个设置用户名和邮箱的指令同时也是查看信息的指令吧。
那么接下来经过一次版本提交咱们来感觉一下,git操做其实没有什么可说的,重要的是要记住git指令及其每条指令的含义。
咱们把路径切换到桌面

cd Desktop

而后在桌面新建一个文件夹,该文件夹就是咱们的工做目录

mkdir rrd

而后切换到工做目录

cd rrd

咱们在工做目录中初始化一个代码仓库

git init

有了代码仓库以后,咱们就能够在工做目录进行工做了。
在目录中建立一个index.txt文件,并编写hello git内容。

cat >> index.txt

输入cat指令建立文件回车后,会等待你输入文件内容,输完ctrl+d保存退出。
咱们输入

hello git

而后,咱们查看一下工做状态

git status

在这里插入图片描述
红色框线内的意思是说提交时除了未跟踪的文件以外没有添加任何内容(使用“git add”进行跟踪)。
说明咱们的index.txt文件并无被git跟踪,咱们使用git add对文件进行跟踪。

git add index.txt

该条指令能够对index.txt进行跟踪,可是,文件若是很是多,这样写显然就很繁琐了,因此,咱们可使用

git add .

将当前目录的全部文件进行跟踪。
而后,咱们将该文件提交到代码仓库。

git commit -m "提交"

-m是注释的意思,引号内写明你对这次提交的注释信息。
到这里,咱们就完成了一次版本管理。
注意,在git中有一个暂存区的概念,能够先不用知道暂存区是什么,你只须要知道,咱们add文件以后,文件是会先放在暂存区,此时文件并无被提交,因此你能够随时撤回你放入暂存区的文件,当你commit以后,文件才会从暂存区被提交到代码仓库。

咱们如今对文件进行修改

vi index.txt

而后输入i、o或者a均可以进入vim的编辑模式,进入编辑模式后,对文件内容进行一些简单的修改,而后按esc退出编辑模式,进入命令模式,此时,输入 :q! 便可退出编辑器,可是修改不保存,输入 :wq 便可保存内容并退出,而后输入

git status

在这里插入图片描述
git会提示你的工做区内容被修改了,这时咱们输入

git add .
git commit -m "再次提交"

咱们的修改就会被同步到咱们的代码仓库中。

接下来演示一下删除。
咱们再次建立一个文件并将其提交到代码仓库,这个相信已经难不倒大家了,我直接贴出全部步骤。

cat >> demo.txt
git add .
git commit  -m"第三次提交"

此时咱们输入git status查看一下状态。
在这里插入图片描述
工做区是空的,说明咱们的工做区和代码仓库已经同步了。
而后,咱们把刚才建立的文件进行删除。

git rm demo.txt

再次输入git status查看状态。
在这里插入图片描述
此时git就发现咱们删除了文件,注意,如今若是想将工做区与代码仓库进行同步,不须要add了,而是直接输入

git commit -m "第四次提交"

这样,代码仓库的demo.txt文件也就被删除了。 若是你本身手动删除文件,你是须要进行add操做的,可是,若是你使用git rm命令进行文件删除,git会帮助你直接把操做放入暂存区,因此,你能够直接提交你的删除操做。

相关文章
相关标签/搜索