Git 简单了解
作为一个程序猿,怎么可以不会 git 呢?今天我就给大家简单介绍一下 git。
Git 是什么?
Git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹(Linus Torvalds)创作。Git 是用于 Linux 内核开发的版本控制工具。与 CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。
看到这里,那么问题来了,版本控制系统又是什么呢?
版本控制系统是什么?
看见下面这个例子解释版本控制系统,我觉得很容易理解。
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:
过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。
看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。
更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。
于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
这个软件用起来就应该像这个样子,能记录每次文件的改动:
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。
现在知道了 Git 是一个很好的版本控制的工具,那么这么好的一个东西,该怎么使用呢?使用起来是否方便?下面,我们就一起来看一下 Git 的初级使用方法。
Git 的安装
下面这个地址有详细的在不同系统上的 Git 的安装方法。
安装 Git
获取帮助
git help //查看 git 参数```
通过 git help 可以查看 Git 命令的每个参数都是干什么的,方便使用。
![git help](http:https://img.haomeiwen.com/i3122121/73abb6716ec51759.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## Git 的初级使用方法
- 创建 Git 仓库
创建一个新的项目目录,并生成一些简单的文件内容。
$ mkdir test
$ cd test
$ echo “hello,world” > readme.txt```
在项目目录创建新的本地仓库,并把项目里的所有文件全部添加、提交到本地仓库中去:
git init //在当前的目录下创建一个新的空的本地仓库
git commit -m "" //把前目录下的所有文件全部添加到暂存区
git status //查看仓库的状态```
做完这些操作以后,大家可以点开刚才新建的那个文件夹,按 Ctrl + h ,可以发现现在文件夹中多了一个 .git 文件。这个目录是 Git 用来跟踪管理版本库的,不要轻易动这个文件啊!!!不然,一不小心就把 Git 仓库给破坏了。
![](http:https://img.haomeiwen.com/i3122121/cfaa9413964d9765.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通过上面的步骤,就已经建好了一个空的仓库。
- 把文件添加到版本库
+ ##### Git 的三种状态
Git 系统上的文件有三种状态已修改(modified)和已暂存(staged)、已提交(committed)。
- 已修改表示修改了文件,但还没保存到数据库中。
- 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
- 已提交表示数据已经安全的保存在本地数据库中。
![](http:https://img.haomeiwen.com/i3122121/526bc65c34562657.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
因为 Git 的三种状态,所以要将一个文件放到 Git 仓库只需要两步:
**第一步**
$ git add readme.txt //用 git add 命令告诉 Git,把文件添加到仓库```
第二步
$ git commit -m "这里写你本次提交的内容的说明,做好写点有意义的,方便以后查找修改" //用 git commit 告诉 Git,把文件提交到仓库
//commit 可以一次提交很多文件,所以你可以一次性 add 不同的文件,然后再统一 commit```
通过这两步,就可以将文件添加到 Git 仓库了。是不是很简单?
未完待续。。。。。。后续将会写一写具体的某些情况的操作,到时候链接都会贴在这里。
贴上几个 Git 相关的学习的网址,有兴趣的可以看一下。
[视频教程《版本控制入门 – 搬进 Github》](http://www.imooc.com/learn/390)
[Git简明指南](http://rogerdudler.github.io/git-guide/index.zh.html)
[免费的git书箱](https://www.gitbook.com/book/bingohuang/progit2/details)
[Git 常用命令手册](https://bbs.excellence-girls.org/topic/166)
[常用 Git 命令清单](http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html)
[廖雪峰的git在线教程](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)
[Git 学习资源汇总](http://www.jianshu.com/p/55496ff224e9)