之前的操作我们都是在本地仓库进行的,如果某一天我们的硬盘挂了,那么结果可想而知,同时也为了多人协作的目的,我们需要用到远程仓库,将版本库放到远端,必要的时候进行提交和拉取。那么,首先我们需要有一个远程仓库,就需要一台服务器,这台服务器充当数据交换的功能,这里我们使用的服务器是GitHub,这个网站是一个仓库托管的网站,大家可以注册一下,然后就可以将内容托管在这个网站上了。

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,为了和远程仓库传递数据,我们需要配置一下密钥。

第1步:在你的电脑上创建SSH Key。命令是ssh-keygen -t rsa -C "youremail@example.com" 你需要把邮件地址换成你⾃己的邮件地址,然后一路回车使用默认值即可,如果一切顺利的话,可以在用户主目录里找到.ssh目录,⾥面有id_rsa和id_rsa.pub两个⽂件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。

Git远程仓库

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”⻚⾯,然后点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub⽂件的内容,如图所示。

Git远程仓库

接下来我们就来创建一个仓库,因为我在本地已经创建了一个Git仓库,现在想在GitHub创建一个Git仓库,让这两个仓库进⾏远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他⼈通过该仓库来协作,这里请注意我是先有得本地仓库,再有得远程仓库。配置如下:

1、登陆GitHub,然后在右上角找到“Create a new repo”按钮,创建一个新的仓库。在Repository name填入仓库的名字,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。Public的意思是你的仓库别人是可以看到的,如果是Private的仓库别人就看不到,不过是需要费用的。

Git远程仓库

2、在GitHub上的这个仓库还是空的,我们可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后把本地仓库的内容推送到GitHub仓库。现在我们采用第二种方式,在本地先添加一个远程仓库$ git remote add origin git@github.com:zaojiahua/ColorBlind.git。origin是仓库的名字,默认远程的仓库就是这个名字,我们起一个大家默认的名字,后边的东西是一个链接的地址,在你新创建的仓库右边可以找到。

Git远程仓库

3、接下来,我们把本地的仓库推送到远程的仓库上,$ git push -u origin master。push就是推送的意思,对应的是pull,就是从远程拉取,然后origin是远程仓库的名字,master代表的是仓库的主分支。由于远程库是空的,我们第一次推送master分⽀时,加上了-u参数,Git不但会把本地master分⽀的内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。从现在起,只要本地作了提交,就可以通过命令git push origin master将修改提交到远程,这样远程仓库和本地仓库就关联起来了。

刚刚的做法是先有的本地仓库,然后关联的本地仓库和远程仓库,现在假设我在远端有一个仓库,而你们要克隆我的仓库放到你们自己的本地中,要怎么做呢?首先我在github上建立一个仓库,创建方法和刚才的是相同的,只不过这次需要选中Initialize this repository with a README,让他为我们生成一个README文件,刚才在本地创建仓库的时候是已经生成好了这个文件,所以没有勾选这项。这个仓库的地址是https://github.com/zaojiahua/cocos2d-x,你们需要点击进去这个地址,然后fork一下这个仓库,这样这个cocos2d-x的仓库就成为你们自己的仓库了。

Git远程仓库

远程有了仓库,那么如何克隆到本地呢,我们使用的命令是git clone git@github.com:zaojiahua/cocos2d-x.git,这样就将远程的仓库拉取到本地了,注意后边的地址需要是你们自己仓库的地址。也就是说克隆只能克隆自己的仓库,而不能克隆别人的仓库,因为你没有权限。而想要将别人的仓库变成你的仓库,需要在远端fork一下,这样在远端就有了一个你自己的仓库。