上一篇文章讲述了如何在windows里面搭建一个界面美观友好的git使用环境,这一篇就来写一下自己到目前为止git的学习情况。git使用教程网上有很多,包括github官方也有git的教程书《progit》,所以这篇笔记就从我学习的角度上来总结一下git用法。 ##有关git git是一个分布式版本控制系统,和SVN的区别在于,SVN是一个集中式版本控制系统。

集中式表示版本库是集中放在中央服务器,每次工作时首先要从中央服务器处得到最新的版本,完成工作之后将本地的东西推送到中央服务器。而分布式不同之处在于它没有中央服务器,每个人工作的电脑就是一个完整的版本库,因此,分布式版本库关键点在于多人协作,即分布在不同地方的版本如何互相推送修改,如何进行版本合并。

##在windows上安装git 这块内容可以参见上一篇博文

##git基础 git基础中最重要的是明白文件状态变化的周期,如下图:

git文件状态周期

从个人电脑的常规文件的角度来讲,没有经过任何git版本控制的文件的状态为未跟踪(untracked)。我们希望将该文件纳入git版本控制,输入一个命令(git add .)后,文件状态即为已跟踪(tracked)并且是未修改(unmodified)的(因为在提请git跟踪之后文件没有作出修改)。这时,git就会跟踪这个文件的变化,当我们对文件作出修改,git就会检测到,此时文件状态为已修改(modified)。当我们向git确认了此次修改之后,该文件就被暂存(staged)起来,最后我们可以将暂存区域里面的文件一次性提交(commit),这样文件就又回到了unmodified状态,如此往复。

以上过程就是在一个完整的版本库中进行管理的过程。github网站就是一个最终统一向公众展示的地方。从版本控制的角度并不起到中央服务器的作用。

##git快速上手 ###第一步,基本设置 开始使用前有个设置一定要做(git有很多设置,可以先暂且不管)——设置自己的名字和邮箱。因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。具体命令如下:

设置用户名:git config --global user.name "my name"

设置邮箱:git config --global user.email "myemail@example.com"

来个图诶:

我是真相

###第二步,创建版本库 如果希望使用git管理一个目录下面的所有文件,我们首先需要初始化。比如为D:\test这个目录创建一个版本库,我们首先cd D:\test到该目录,然后输入:

git init

就能把这个目录变成git可以管理的仓库。这时在test目录下会多出来一个.git目录,这个目录是Git用于跟踪管理版本的,不要手动修改这个目录里面的文件,否则会将git仓库破坏。

真相2

创建了版本库后我们就可以查看版本库里面文件的状态了,所用到的命令是

git status

###第三步,跟踪文件——git add filename 创建版本库之后,目录里面的文件都是untracked的,因此我们可以让git有选择或者将所有文件纳入跟踪。命令即为:git add filename。例如,我们可以这样:

git add 1.txt 2.c

或者,如果要把所有文件都跟踪,那么只需要一个点即可,就像酱:

git add .

这里要注意一点,add命令在文件不同状态下使用代表的意思不同。拿目前在写的这篇文章为例。

文件创建后版本库的状态是这样:

git add 1

红色即表示新创建了一个文件且没有被跟踪,输入'git add .将文件跟踪:

git add 2

之后对该文件进行修改,查看当前状态:

git add 3

上一行绿色的”new file”表示这个文件已经被跟踪但是还没有提交(位于暂存区),下面红色的”modified”表示,这个文件被修改了,但是没有将修改后的文件版本放入暂存区。这时,要让修改后的文件放入暂存区,命令也是git add。也就是说,add命令既可以表示新跟踪一个文件,也表示将修改后的文件内容放入暂存区,因为其原理都是将新的内容放入暂存区。执行了add命令后的文件状态如下:

git add 4

###第四步,提交暂存区文件——git commit -m “summary” 当一段工作完成,我们就需要将暂存区的文件提交。注意,这里的提交并不是上传到github网站上的意思,而是本地仓库中正式的文件版本的含义。git规定,每一次的提交都必须写一段summary,表明本次提交更新的内容是什么(当然啦你可以随便写一些话,只要写了就行XD)。比较方便的命令是:git commit -m "summary",其中summary就是你可以自由发挥的地方。另外,你可以只用git commit提交,这时git就会打开一个默认的文本编辑器(如vim),同样要求你写summary。下图就是我用第一种方法提交后的结果:

git commit

OK,到目前为止,本地git的使用方法就是如此,掌握了基本原理和命令还是比较简单的。

##参考资料

  1. 《Pro Git》
  2. 手把手教你使用Git