之前学了Git工具的常用命令,了解了工作区、暂存区、版本库、分支、指针等概念,那时候觉得不就是个版本管理工具吗,不用了解得太深,直到一次操作失误,无法提交代码,网上各种搜解决方法,依然有各种问题,真是一团浆糊啊!所以决定写几篇文章,正本清源地了解一下Git的使用方法。
首先来说Git是什么?Git是一个分布式版本控制系统。先说说什么是版本控制系统?我们在写程序的过程中经常碰到代码、需求的变动,带我们又不想让新的代码直接覆盖旧的代码,因为以后很可能用到旧的代码,如果把旧的版本一版一版地保存下来又太麻烦了。还有的情况就是我们需要把某个阶段的代码先交给别人进行开发,自己也同时进行开发,那最后如何把两个人的改动进行合并呢?为了解决这些问题需要这么一个软件,它能够保存不同版本的代码,我们能够清楚地知道这个版本与之前的版本相比做了哪些变动。所以就诞生了Git这么一个工具对代码的版本进行管理。
那再说说什么是分布式呢?那要先说说更早的集中式版本控制系统,它是把版本库集中存放在中央服务器的,我们要修改代码时需要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式版本控制系统最大的毛病就是必须联网才能工作,遇到网速慢的时候,急skr人呐。而分布式版本控制系统则没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。分布式版本控制系统的安全性也要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。集中式的版本控制系统有SVN、CVS,虽然我都没有用过-_-!。
Git不同平台的安装,就不介绍了,网上都有,推荐廖雪峰的Git教程。其实这个教程说得很详细了,珠玉在前,我只是写一点自己的想法,加深理解而已。安装完成后,想要和远程的仓库进行交互,得先自报家门:你的名字和Email地址,操作如下:
$ git config --global user.name "Your Name" $ git config --global user.email email@example.com
这样你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
你看我上文提到过版本库、仓库,这又是什么概念呢?其实版本库(Repository)又名仓库,可以简单理解成一个目录,里面存放着各种文件,可以被Git进行管理,每个文件的修改、删除,Git都能跟踪。创建一个版本库:
$ mkdir repository
$ cd repository
$ git init
简单来说就是先创建目录,然后切到目录下,再把它变成Git可以管理的仓库。那既然把它变成了仓库,这个目录有什么变化吗?变化就是在这个目录下多了一个.git目录, 在文件夹下是看不到这个目录的,因为它默认是隐藏的,但你可以通过命令行进行访问。