Git学习系列(4)远程仓库及其与本地仓库交互

Git学习系列(四)远程仓库及其与本地仓库交互

创建GitHub账号及获取SSH秘钥对

创建远程仓库通常有两种方式:

1、把一台电脑充当服务器,让它每天开机,其他人都从这台“服务器”仓库clone一份到自己的电脑上,并把各自的修改(包括添加了新的feature、解决了新的bug等)提交到“服务器”仓库中,当然你也可以从“服务器”仓库中拉取别人的提交。实际开发中一般就是这么做的。

2、因为咱毕竟还是处于学习当中,为了学Git去整个"服务器"未免有点“杀鸡焉用牛刀”的感觉。好在有个为Git仓库提供托管服务网站的名为GitHub的网站,可以由它来创建并管理远程仓库。

因此,咱选择第二种方式来创建远程仓库,先进官网去瞧瞧,GitHub官网:

Git学习系列(4)远程仓库及其与本地仓库交互

账号请大家自行注册。由于你的本地Git仓库和远程GitHub仓库之间的传输是通过SSH协议加密的,因此需要进行一些设置。

步骤如下:

1)、创建SSH Key。在创建SHH Key之前看看在用户主目录有没有.ssh文件夹,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可以直接跳过这一步。如果没有,打开咱第一章叫大家安装的Git Bash,创建的命令如下:

Git学习系列(4)远程仓库及其与本地仓库交互

注意:把email地址换成你自己的,然后一直按回车键即可(只为学习,也无需设密码)。

然后,你将看到主目录里面多了一个.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。

2)、用你刚创建的GitHub账号登录GitHub网站,打开“Account settings”(你可能看到上面有个感叹号,那是因为像我们平常注册账号一样,需要激活,我们可以点进去填入Name,Email (will be public)然后进入邮箱确认激活即可),然后点击左侧的“SSH Keys”页面,

Git学习系列(4)远程仓库及其与本地仓库交互

然后,点“Add SSH Key”,输入Title,在Key文本框里粘贴id_rsa.pub文件的内容:

Git学习系列(4)远程仓库及其与本地仓库交互

点击Add key:

Git学习系列(4)远程仓库及其与本地仓库交互

为什么GitHub需要SSH Key呢?因为GitHub需要确认推送的提交是你做的,而不是别人冒充的,而Git支持SSH协议,所以GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。然后你也可以添加多个SSH key,只需把别的电脑上的Key添加即可,这里不再赘述。注意:在GitHub上免费托管的Git仓库(既然是免费,那然后大家都可以看到),只有自己才能修改,所以建议大家不要把重要的资料托管上去。如果你不想让别人看到你的Git仓库,有两种办法,一是交点钱给GitHub,让它把你管理(其他人是看不到的,也就是说你的Git仓库变为了私有);还有一种方法,那就自己搭个Git服务器吧,通常公司做开发也就是这么干的。


创建并添加远程仓库

有了GitBub账号,登录后找到右上角的“Create new...”:

Git学习系列(4)远程仓库及其与本地仓库交互

点击New repository(即创建一个新的仓库):

Git学习系列(4)远程仓库及其与本地仓库交互


然后在Repository name中输入mygit,点击Create repository即可:

Git学习系列(4)远程仓库及其与本地仓库交互

好了,这样就创建了一个仓库。现在这个远程的mygit仓库还是空的,下面我们把上面章节中创建的本地mygit仓库推送到这个远程仓库中。咱们的思路是把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。


将本地仓库推送至远程仓库

Git学习系列(4)远程仓库及其与本地仓库交互


其实GitHub已经帮我们写好要在Git Bash中输入的命令了,我们只需按它写的来执行即可:

Git学习系列(4)远程仓库及其与本地仓库交互

这里添加名为origin1的远程库,当然你也可以把名字换成别的。注意:这里的xiaokefeixia换成你的GitHub账户名。

下面就可以把本地库的所有内容推送到远程库上:

Git学习系列(4)远程仓库及其与本地仓库交互

用git push命令把本地库的内容推送到远程,实际上是把当前分支(关于分支,后面会讲到)master推送到远程。

以后只要本地做了提交。就可以使用git push origin1 master #把本地master分支的最新修改推送至GitHub。


从远程仓库clone至本地

和之前一样,先登录GitHub创建一个新的远程库,叫做clonegit,记得勾选一下:

Git学习系列(4)远程仓库及其与本地仓库交互

这样就可以帮我们创建一个README.md文件,如图:

Git学习系列(4)远程仓库及其与本地仓库交互

好了,远程库准备好了,下面咱再用git clone 命令来clone一个到本地:

Git学习系列(4)远程仓库及其与本地仓库交互

然后把们将看到,用户主目录下多了一个clonegit目录,而且里面还有README.md和.git:

Git学习系列(4)远程仓库及其与本地仓库交互

这样我们就成功的从远程仓库clone了一个到本地了。是不是so easy呢~Git学习系列(4)远程仓库及其与本地仓库交互


小结

  将本地仓库推送至远程仓库(以下的用户名及仓库名要换成自己的哦):

      1、关联一个远程仓库,使用git remote add origin git@github.com:xiaokefeixia/mygit.git ;
      2、关联之后,可使用git push -u origin master第一次推送master分支的所有内容;
      3、以后每次本地提交后,就只需敲入命令git push origin master推送最新修改到远程即可。

从远程仓库clone(要克隆得知道远程仓库的地址)至本地:

   1、创建一个远程库clonegit;
   2、然后使用命令:git clone git@github.com:xiaokefeixia/clonegit.git即可。