第二章 初识Git

第二章 初识Git

1.Git的历史

Linux系统之前的存代码方式都是志愿者以diff方式传给linux手工合并代码,后来觉得麻烦,但又觉得集中式版本控制系统cvs、svn太垃圾就不用。后期代码库太大无法维护,就用BitKeeper的免费版本,到了05年,有人试图破坏免费协议,然后BitKeeper就一怒之下收回使用权。

后来没办法,Linus花了两周时间,自己用C编写了一个分布式版本控制系统,即Git。在之后,linux上的源码全都在Git管理了。

2. 集中式vs分布式

集中式:版本库集中放在中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

毛病在于集中式必须联网,网速要够快,带宽要打。

分布式:每个人的电脑都是一个完整的版本库,那如何多人协作?比如你在你的电脑修改文件A,他在他的电脑修改了文件A,你俩只需要把自己修改的内容发给对方即可看到对方的修改了。这样做安全性提高了许多。

但是在实际使用分布式的时候,很少两人之间推送文件修改。往往是分布式控制系统通常也有一台充当“中央服务器”的电脑,这个电脑的作用仅仅是让大家来交换自己的改动。

3. 安装Git

3.1windows上安装git

下载完安装程序后,然后按默认选项安装即可。安装完成后,在开始菜单里找到

“Git”->“Git Bash”。安装完成后,需要在命令行输入:

$ git config --global user.name "Your Name"

$ git config --global user.email "[email protected]"

因为git是分布式版本控制系统。所以每个机器都需要输入用户名和email地址。如果被冒充怎么查?

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email

3.2linux上安装git

3.3mac上安装git

4.创建版本库

版本库repository,可以理解为一个目录。这个目录里所有的文件都可以被Git管理。每个文件的增删改查,Git都能跟踪,一边任何时刻可以追踪历史,或者在将来某个时刻可以“还原”、“回滚”

1.创建一个版本库非常简单,首先,选择一个合适的地方创建一个空目录:

$ mkdir learngit

$ cd learngit

$ pwd

/Users/michael/learngit

Pwd是用来显示当前目录

Windows的话,确保路径不含中文

2.通过git init命令把这个目录变成Git可以管理的仓库:

$ git initInitialized empty Git repository in /Users/michael/learngit/.git/

接着会提示你已经创建了一个空的版本库。文件夹中会出现一个.Git的目录,这个目录是来跟踪管理版本库的,不要手动修改这个目录里的文件,如果没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令即可查看。

3.把文件添加到版本库中

首先说明一点,所有的版本控制系统,其实只能跟踪文本文件的改动,比如txt、网页、程序源码等。版本控制系统只可以告诉每次的改动,无法跟踪二进制文件的变化。所以图片、视频、word格式的文件的变化都没办法跟踪。如果真正要使用版本控制系统,就要以纯文本方式编写文件。强烈建议,文本文件使用标准的UTF-8编码,可以被所有平台支持。

对于windows用户,不要使用微软自带记事本。尽量下载notepad++代替记事本。默认编码格式选择UTF-8 without BOM

好了,现在写一个readme.txt放入git文件夹中。输入命令git add,将文件添加到仓库。

$ git add readme.txt

接着用git commit命令告诉Git,把文件提交到仓库

$ git commit -m "wrote a readme file"

[master (root-commit) eaadf4e] wrote a readme file

 1 file changed, 2 insertions(+)

 create mode 100644 readme.txt

“”中包括的内容可以输入任意内容,但最好有意义,因为这样就可以在历史记录里方便的找到改动记录。这输入的是本次提交的说明。

如果执行成功,命令行显示

 1 file changed, 2 insertions(+)

一个文件已经改动,其中添加了两行内容。

为什么git添加文件需要add、commit两个步骤呢?

Commit可以一次提交很多文件,所以你可以多次add不同文件

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

总结:

初始化git仓库:Git init

添加文件到仓库:git add  git commit -m“”

你可能感兴趣的:(第二章 初识Git)