本文开始之前,如果不理解如何在本地建立版本控制库的朋友,请传送至我的上一篇博客:Git快速入门(一):创建本地库管理工作区文件

顺便在这里补充一句,在init创建版本库时,最好在工作目录下init创建,使得工作目录能和版本库关联起来,否则使用add命令时很有可能无法找到文件(鄙人就吃过这种大亏),如图(.git在工作目录里):Git快速入门(二):添加并连接远程库
接下来让我们进入本篇博客的内容:添加并连接远程库。

首先我们要知道远程仓库在哪里,相信你一定听说过GitHub吧(即使可能没用过),GitHub是一个面向开源及私有软件项目的托管平台,只支持git 作为唯一的版本库格式进行托管。打个比方,GitHub就相当于指挥官,你将本地库交给他,由他来决定你的提交文件存储在哪个远程服务器上。

没有GitHub账号的朋友快快去注册哦:GitHub官网

登陆后我们就可以真正开始了。
1,创建SSH Key
在创建之前,我们应该先确定是否已经存在ssh key,进入C:/users/用户名/.ssh 里看看是否有文件id_rsa和id_rsa.pub。(有时候其他程序也会创建)。如果有则直接跳过这步,否则在git bash里执行如下命令:

$ ssh-****** -t rsa -C "[email protected]"

这样刚刚那个文件夹里就有那两个文件了。
这里id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以放心告诉别人(当然也不能随便告诉别人,否则你的远程仓库如果多出什么奇怪的东西我可不负责的????)

2,添加SSH Key
我们打开id_rsa.pub,复制里面的所有内容,打开GitHub登陆,点击右上角头像:
Git快速入门(二):添加并连接远程库
打开Settings,找到SSH and GPG keys选项并点进去,新建一个SSH Keys,标题可以随便命名(推荐有纪念意义点,比如:my_first_SSH_Key,将复制的内容粘贴到Key那一栏中:
Git快速入门(二):添加并连接远程库
点击Add SSH key,这样你就能得到如下图标了:
Git快速入门(二):添加并连接远程库
相信你的图标一定是灰色的,因为你还没有连接过本地库呢。完成后序操作后,你就能和我一样变绿。(感觉这个词有点奇怪诶)

PS:SSH Key相当于暗号,每个机器有且只有一个,而你的GitHub远程仓库只会接收那些被你添加信任的SSH Key机器,所以你如果有多个设备,就需要为它们单独生成SSH Keys,并添加到GitHub中。

3,创建远程仓库
完成上面步骤后,你还没有远程仓库,在你的GitHub页面右上角找到“Create a new repo”按钮,你就可以创建一个远程仓库了,仓库名建议与与本地工作文件夹名相同,便于以后区分。然后Public或者Private(PS:以前私有仓库需要每月7刀的价格,自从微软收购GitHub后,私有仓库免费化,为微软爸爸点赞????),注意勾选Initialize this repository with a README选项,这能在创建仓库后得到README文件:

Git快速入门(二):添加并连接远程库

4,关联本地仓库和远程仓库
在git bash里进入本地仓库目录,输入命令:

$ git remote add origin 你的远程仓库地址

查看地址如下(点击Clone or download)(注意地址选git开头而不是https开头的):
Git快速入门(二):添加并连接远程库

这样,你的远程库地址就被命名为origin(当然也可以输入其他名字)。

可以通过命令:

$ git remote -v

查看已关联远程仓库:
Git快速入门(二):添加并连接远程库

5,提交本地仓库内容到远程仓库
(马上就能提交文件到远程仓库了,相信你已经迫不及待了????)
首先让我们重复上篇博客的内容:
Git快速入门(二):添加并连接远程库

然后我们就可以执行提交命令了:

$ git push -u origin master

这里origin就是远程仓库的地址,master是本地仓库的一个分支(关于分支以后再说)。-u是在第一次提交时使用,之后提交不需要加参数-u。

PS:在廖雪峰老师的Git教程中有如下情况,当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

在push时,我不小心翻车了????:
Git快速入门(二):添加并连接远程库
网上查找之后发现是远程仓库里有README文件(早知道就不点了),而本地仓库没有,导致不匹配,故只需使用命令:

$ git pull --rebase origin master

将本地仓库更新一下即可,看下你的本地文件夹是不是多了一个README文件呢?
然后我们再push一次:
Git快速入门(二):添加并连接远程库
yes,终于成功了,哈哈……
检查你的远程库内容:
Git快速入门(二):添加并连接远程库
是不是和我一样提交成功了呢?
以后提交就只需$ git push origin master 而无需-u参数了。

6,从远程仓库克隆
使用命令:
$git clone 远程仓库地址
这样你就能将地址指向的所有文件clone到当前文件夹里了(指git bash当前正在操作文件)。
检查本地文件夹,是不是发现了远程仓库里的文件已经被clone到本地了呢。

然后我就想,既然这样也能更新本地库,说不定翻车时clone我的远程库地址也行,于是我尝试一番:
Git快速入门(二):添加并连接远程库
果然没有报错,哈哈。

这里补充一下为什么不用https协议而用ssh协议:https不仅速度比ssh慢,而且每次推送都得输入口令。除非你们家或公司只开放http的端口,否则推荐使用ssh协议。

到此为止,你应当要掌握如何添加并连接远程库,如何push到远程库,如何clone远程库内容到本地。

总结如下:
申请GitHub账号并登陆GitHub官网

创建SSH Key:
如果C:/users/用户名/.ssh 里没有文件id_rsa和id_rsa.pub,通过命令:

 $ ssh-****** -t rsa -C "[email protected]"

生成上面文件。

添加SSH Key:
复制id_rsa.pub里的内容,将其添加到GitHub的Settings中的SSH and GPG keys一栏,并保存。

创建远程仓库:
在GitHub上点击“Create a new repo”按钮创建库。

关联本地仓库和远程仓库:

$ git remote add origin 你的远程仓库地址

同步本地和远程库:

$ git pull --rebase origin master

将本地库内容提交到远程库(第一次要带参数-u):

$ git push -u origin master

将远程库内容克隆到本地:

$git clone 远程仓库地址

当然,本次也只是讲解了一些特别基础的指令和操作,要知道Git可是一个非常强大的辅助工具,仅仅Git手册就有接近500页的内容。唯有熟练掌握了git,才能在一些大型项目中游刃有余。
前面提到过分支,这在多人合作完成项目里十分重要,为了不让多个开发人员相互牵制进程(如:你的代码需要在前一个人先完成任务的基础上才能运行),需要在仓库里为每个人合理创建分支,最后再合并。这样才能达到高效率开发项目(类似于并行开发,让各个分支更独立)。如果以后有机会,我会继续讲解有关分支的内容,包括概念,基础操作等。

最后继续附上Git常用操作图示:
Git快速入门(二):添加并连接远程库
参考内容:廖雪峰老师的Git教程Git手册

相关文章: