Git的下载和安装
下载链接:官网下载、百度云下载
安装说明:双击exe文件,默认配置完成安装,开始菜单里出现如下图的三个图标。
Git基本配置
安装完成后,我们需要进行两项配置,一项是配置自己的名字,一项配置自己的邮箱地址,配置的目的是为了可以方便查看是谁修改的代码,以做确定身份之用。在桌面任意处右击 → Git Bash Here,在弹出的Git Bash命令框中输入下面的命令:
$ git config --global user.name “Your name” //配置用户名
$ git config --global user.email “Your Email address” //配置用户邮箱地址
例如:
$ git config --global user.name “Micheal”
$ git config --global user.email “15732625435@163.com”
查看当前配置命令:
$ git config user.name //查看用户名
$ git config user.email //查看用户邮箱地址
$ git config -l //查看所有配置
整体图示:
ok,配置算是完成了。
Git简单使用
通常,项目的所有代码放在一个文件夹中。不过,为了展示方便,我就用一个txt文件来代替这个系统代码文件夹,通过对txt文件的管理来映射对代码的管理,效果一致。
-
在桌面新建一个文件夹,命名为GitTest。
-
在GitTest文件夹下新建一个文本文件,命名为readme.txt。(这相当于把代码文件夹放到GitTest根目录下)
-
在GitTest文件夹下右击,选择Git Bash Here,输入命令:
git init
。这时候,GitTest文件夹下会出现一个.git文件夹,它是隐藏的,需要把文件夹选项设置为显示隐藏文件夹方可看到。这个时候,GitTest文件夹下就是一个版本库了。就相当于我们new了一个管理员,不过这个管理员现在还不知道要管理什么内容,我们需要告诉他。 -
在GitTest文件夹下右击,选择Git Bash Here,输入命令:
git add .
(这个点代表所有文件,你也可以写成具体的文件名,如readme.txt)。这行命令的意思是告诉仓库管理员,你把这个文件夹下的所有文件都添加到仓库了,让他帮你把这些文件管理起来。 -
然后在命令行中输入命令:
git commit -m "add files"
,这行命令的意思是告诉管理员一些备注信息。引号里面必须写一些内容,写什么随你。
-
OK,执行完上面这些步骤,我们的readme.txt文件就被管理起来了,现在我们开始演示。比如,我在readme.txt文件中添加一行信息:
I love git
, 保存。查看被修改的文件,使用命令:git status
。查看修改的内容,使用命令:git diff 文件名
。如图所示,修改了文件readme.txt,在其中添加了一行信息I love git
。 -
现在我们再执行一次
git add .
和git commit -m "add one sentence"
。如下图所示,这是什么意思呢?我们小时候玩游戏的时候,都有状态存盘的功能,如果某一关没有过去,你还可以选择读取前一关的状态,从那里重新开始。Git也是一样,每当你觉得文件修改到一定程度的时候,就可以保存一个“快照”,这个快照在Git 中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作。现在,我们就把readme.txt这个文件保存了一个快照。
-
为了你更好的理解呢?我们再重复一遍上面的操作。我再在readme.txt文件夹下添加一行信息:Git is the best VCS. 然后执行
git add .
和git commit -m "add the other sentence"
。这样,我们就又一次存了一个快照。
-
好了,就像打游戏一样,提前存了快照,即使打输了游戏,也还是可以返回到保存的进度。类比代码,我们改乱了代码,希望回到之前的状态。我们就可以执行命令:
git log
来查看我们存了哪些快照。
-
我们现在就可以看到了我们存了三次快照,第一次是将代码添加到版本库进行管理,算是初始进度。第二次是添加一行句子:
I love git.
的快照。第三次是添加一行句子:Git is the best VCS.
的快照。commit后面跟着的一串字母和数字的组合是系统生成的不会重复的SHA1计算出来的数字,是这次快照的惟一ID属性。当我们需要回到指定的快照的时候,就需要输入其ID来进行返回。 -
下面我们回到只有第一个句子的快照,输入命令:
git reset --hard 805c6c
,这句命令中的805c6c其实就是指的第二次快照的ID,不过这ID没必要写全,写前几位就可以了,Git会自动去找。OK,执行完这行命令,你再看看readme.txt文件中是不是只有一行信息了。
小结
现在总结一下:
- 新建一个版本管理仓库:
git init
- 向仓库中添加一个文件:
git add filename
- 保存快照:
git commit -m "top information"
- 查看快照:
git log
- 返回到指定快照:
git reset --hard commit id
注意:commit 之前一定要先add ,因为它保存的快照是add的东西。这就涉及到Git优于SVN的一点,Git保存的是修改,而SVN保存的是文件,所以Git在速度上优于SVN。如果你不理解,我举个例子:对于一个txt文件,如果我们在里面添加了一行信息,Git只保存添加的这一行信息。而SVN则保存的是加上这两行信息后的所有项目文件。这个只保存修改的机制是Git的一大亮点。
参考资料: 廖雪峰