首页 > 代码库 > Git学习总结

Git学习总结

一、Git的学习资料

1、《Pro Git》中文版

我们可以先看本书的前几章,对git的基本知识进行大致掌握,了解其工作流程。

2、视频学习

视频网站:http://www.linecg.com/video/play29775.html

进行视频学习,这样会让我们更深刻和直观地了解git的工作方式,并且可以学习如何使用git版本控制工具帮助我们管理版本,以及进行团队协作开发。

3、简单而常用的知识学习

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

经过这些学习和实践后,自己在工作中使用git时才能少走弯路。记得我使用git管理时,刚开始直接没看理论书籍,有什么问题就搜网络,在这个过程真的很是煎熬,因为很多东西都只知其一不知其二,导致一些无用功和瞎琢磨。

二、Git的主体工作流程

1、本地工作流程

技术分享

怎样将工作区内容添加到当前分支呢?

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

2、远程工作流程

技术分享

在建立连接与克隆后,本地项目就可以push到远程仓库,或者再次从远程仓库提取数据。

三、git客户端使用

本文所谈的工具使用,主要是指git客户端。我们一般使用git的客户端来管理本地项目,而git的服务器主要是用来协作多人开发的。

常见的客户端:

1)Windows平台下

  • cygwin :    

      技术分享

      它是在Windows平台上模拟类UNIX环境的自由软件。

  • msysgit

     技术分享          

     它是在Windows平台下运行类似DOS的软件。

  • tortoisegit:

     技术分享 

     它是在Windows平台下运行的图形界面,由于它是以msysgit为基础  的,所以必须安装msysgit,才能使用tortoisegit。

3.1 cygwin的安装

这个网上教程很多,就不一一介绍了,推荐一个安装示例:http://blog.chinaunix.net/uid-20775138-id-3029537.html

技巧:其中一个方便打开cygwin:Windows7下Cygwin加入鼠标右键,打开当前目录

3.2 msysgit与tortoisegit的安装

按照默认提示就可以了,当然安装目录最好改一下,如果你C盘容量大,也就无所谓了。

3.3 使用git客户端在本地工作

首先单击鼠标右键,可以看到下图:

技术分享

说明:OpenCygwin是通过该Windows7下Cygwin加入鼠标右键,打开当前目录教程得到的。

注意:首次使用git客户端时,都需要配置用户名和Email地址。

cygwin和msysgit都是在类似Dos界面上工作的,最开始学习时建议使用它们,这样通过输入git命令可以让我们更好的了解和熟悉git。

具体有哪些命令,可以参考:

  • 《Pro Git》中文版
  • Git 常用命令速查表(三)
  • Git 参考手册

tortoisegit是图形界面工具,我们可以很方便地操作tortoisegit来完成那些复杂命令,不过有时某些特殊命令,还是建议使用cygwin或者msysgit执行。本人是这两种类型的工具都使用,哪种方便就用哪种。

3.4 使用git客户端与远程仓库交互

      本文以OSChina的git服务器为例,本地要与git服务器通信,当然要使用某种协议达成共识,这样才能通信,比如中国人与俄罗斯人通话,如果中国人说普通话,俄罗斯人说俄语,此时估计他们都听不懂对方说什么,如果他们同时使用国际语言--英语(协议)交流的话,那么问题就一下解决,哇咔咔,合作愉快!

git常用的协议有https、ssh、git等。

这里,我主要介绍两种方式https、ssh。

1、https方式

部分参考:http://my.oschina.net/jinweida/blog/267325

1)注册

链接https://git.oschina.net/,按照步骤进行

2)创建一个项目

填入项目名称和项目介绍,项目语言可以空缺,一般勾选初始化项目。

技术分享

我已经创建好一个test的项目。

3)本地克隆OSChina上的test项目

(1)点击“Git Clone”

技术分享

(2)在OSChina上找到test项目的https协议,点击复制

技术分享

(3)在点击”Git Clone”弹出如下界面:

技术分享

将OSChina上复制的https协议粘贴在URL中,然后点击确定。

(4)之后先后会弹出,填写在OSChina上的用户名与密码的对话框

技术分享 技术分享

连接成功后,会弹出如下界面:

技术分享

在本地会出现克隆得到的test项目

技术分享

 

 

2、ssh方式

ssh方式连接git服务器,需要公匙和密匙。公匙相当于一把锁,而密匙犹如一把锁的钥匙,它可以打开这把锁,公匙与密匙是配套使用的。公匙是发给git服务器使用的,而密匙是本地git客户端使用的。

方式一:cygwin

1)使用cygwin中的SSH工具生成公匙和密匙

单击右键,选择OpenCygwin,打开cygwin的命令行窗口,输入

ssh-keygen -t rsa -C "电子邮箱地址“

然后确定,确定。。。最后在cygwin安装的文件夹下会生成两个文件,路径为C:\cygwin\home\Administrator\.ssh。

注意:Administrator为电脑的用户,如果你添加了其它用户,并使用了其它用户安装了cygwin,那么这里用户需要改成你所添加的用户。

技术分享

2)把生成的id_rsa.pub公匙文件用记事本之类的文本编辑软件打开,复制里面的内容,将其添加到OSChina的SSH公匙里。

OSChina如何将id_rsa.pub公匙里的内容添加到SSH公匙里呢?

(1)首先在浏览器上输入http://git.oschina.net/keys,之前登录后才能进去哦。

技术分享

这里我已经添加了两个SSH公匙,点击”添加公匙“,后转到如下界面

技术分享

填写标题与粘贴公匙后,点击”保存“,就完成了在git服务器上SSH公匙的添加。

3)查看公匙是否配置成功

ssh -T git@git.oschina.net

如果成功返回提示信息如下图

技术分享

4)输入克隆命令

git clone git@git.oschina.net:用户名/test.git用户名是你在OSChina里使用的名字

技术分享

git@git.oschina.net:用户名/test.git的来源于OSChina的test项目的SSH协议,如图:

技术分享

点击复制,即可获得。

5)接下来就可以本机上对克隆的项目进行修改,push,pull,fetch等操作了。

方式二:msysgit

msysgit与cygwin方式类似,如果首先使用了cygwin生成公匙与密匙,那么在C:\Users\Administrator查看是否有.ssh文件夹?

如果没有,就将cygwin所生成的.ssh整个文件夹复制过来,即可。

如果有,就将cygwin里所生成的”id_rsa“和”id_rsa.pub“复制进来。

这样就完成了与OSChina git服务器的连接配置。然后就可以按照方式一中的3)、4)、5)步骤进行了。

如果之前没有使用cygwin生成公匙和密匙的话,那可以参照方式一的步骤进行公匙和密匙的生产以及其它配置。

方式三:tortoisegit

tortoisegit与方式二类似,但是有两点不同,一是密匙的格式不同,二是在tortoisegit客户端显式地

tortoisegit本身是基于msysgit上运行的,按道理,它直接使用在C:\Users\Administrator\.ssh文件夹下的公匙与密匙就可以了,但是它所使用密匙格式不同,它的密匙是.ppk文件,因而要为它转换密匙的格式。

1)打开tortoisegit安装目录,bin文件夹下的”puttygen.exe“工具,打开它,然后点击”load“,加载id_rsa密匙,最后点击保存密匙,就可以得到tortoisegit专有的密匙,例如tortoiseKey.ppk。

技术分享

2、在克隆时,要显式地添加密匙

技术分享

URL的填写还是复制OSChina上test项目的SSH协议,最关键的是要点击添加tortoisegit的专属密匙,最后确定就可以克隆远程仓库上的项目了。

小结:

方式一、二、三主要区别还是在密匙的生成上以及添加上。OSChina的git服务器上是使用统一的公匙。

git服务器使用公匙来达到锁门效果,而git客户端使用相应的密匙来打开这把锁,然后才能与之交互。

Git学习总结