一、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
注意点:
在选择下载站点的镜像时,选择163的这个,因为在中国选择163这个下载点,速度相对其他的下载点而言会快不少。
技巧:其中一个方便打开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:cygwinhomeAdministrator.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:UsersAdministrator查看是否有.ssh文件夹?
如果没有,就将cygwin所生成的.ssh整个文件夹复制过来,即可。
如果有,就将cygwin里所生成的”id_rsa“和”id_rsa.pub“复制进来。
这样就完成了与OSChina git服务器的连接配置。然后就可以按照方式一中的3)、4)、5)步骤进行了。
如果之前没有使用cygwin生成公匙和密匙的话,那可以参照方式一的步骤进行公匙和密匙的生产以及其它配置。
方式三:tortoisegit
tortoisegit与方式二类似,但是有两点不同,一是密匙的格式不同,二是在tortoisegit客户端显式地
tortoisegit本身是基于msysgit上运行的,按道理,它直接使用在C:UsersAdministrator.ssh文件夹下的公匙与密匙就可以了,但是它所使用密匙格式不同,它的密匙是.ppk文件,因而要为它转换密匙的格式。
1)打开tortoisegit安装目录,bin文件夹下的”puttygen.exe“工具,打开它,然后点击”load“,加载id_rsa密匙,最后点击保存密匙,就可以得到tortoisegit专有的密匙,例如tortoiseKey.ppk。
2、在克隆时,要显式地添加密匙
URL的填写还是复制OSChina上test项目的SSH协议,最关键的是要点击添加tortoisegit的专属密匙,最后确定就可以克隆远程仓库上的项目了。
小结:
方式一、二、三主要区别还是在密匙的生成上以及添加上。OSChina的git服务器上是使用统一的公匙。
git服务器使用公匙来达到锁门效果,而git客户端使用相应的密匙来打开这把锁,然后才能与之交互。