(四)远程仓库及其与本地仓库交互

最后更新于:2022-04-01 20:06:41

**创建GitHub账号及获取SSH秘钥对** 创建远程仓库通常有两种方式: 1、把一台电脑充当服务器,让它每天开机,其他人都从这台“服务器”仓库clone一份到自己的电脑上,并把各自的修改(包括添加了新的feature、解决了新的bug等)提交到“服务器”仓库中,当然你也可以从“服务器”仓库中拉取别人的提交。实际开发中一般就是这么做的。 2、因为咱毕竟还是处于学习当中,为了学Git去整个"服务器"未免有点“杀鸡焉用牛刀”的感觉。好在有个为Git仓库提供托管服务网站的名为GitHub的网站,可以由它来创建并管理远程仓库。 因此,咱选择第二种方式来创建远程仓库,先进官网去瞧瞧,[GitHub官网](https://github.com/): ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eaa7cde1.jpg) 账号请大家自行注册。由于你的本地Git仓库和远程GitHub仓库之间的传输是通过[SSH](http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html)协议加密的,因此需要进行一些设置。 步骤如下: 1)、创建SSH Key。在创建SHH Key之前看看在用户主目录有没有.ssh文件夹,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可以直接跳过这一步。如果没有,打开咱第一章叫大家安装的Git Bash,创建的命令如下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eaa9d745.jpg) 注意:把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”页面, ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eaab8dfc.jpg) 然后,点“Add SSH Key”,输入Title,在Key文本框里粘贴id_rsa.pub文件的内容: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eaad1cee.jpg) 点击Add key: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eaaf3e16.jpg) 为什么GitHub需要SSH Key呢?因为GitHub需要确认推送的提交是你做的,而不是别人冒充的,而Git支持SSH协议,所以GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。然后你也可以添加多个SSH key,只需把别的电脑上的Key添加即可,这里不再赘述。注意:在GitHub上免费托管的Git仓库(既然是免费,那然后大家都可以看到),只有自己才能修改,所以建议大家不要把重要的资料托管上去。如果你不想让别人看到你的Git仓库,有两种办法,一是交点钱给GitHub,让它把你管理(其他人是看不到的,也就是说你的Git仓库变为了私有);还有一种方法,那就自己搭个Git服务器吧,通常公司做开发也就是这么干的。 **创建并添加远程仓库** 有了GitBub账号,登录后找到右上角的“Create new...”: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eab189d1.jpg) 点击New repository(即创建一个新的仓库): ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eab37023.jpg) 然后在Repository name中输入mygit,点击Create repository即可: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eab4aac2.jpg) 好了,这样就创建了一个仓库。现在这个远程的mygit仓库还是空的,下面我们把上面章节中创建的本地mygit仓库推送到这个远程仓库中。咱们的思路是把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。 **将本地仓库推送至远程仓库** ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eab65375.jpg) 其实GitHub已经帮我们写好要在Git Bash中输入的命令了,我们只需按它写的来执行即可: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eab9c92d.jpg) 这里添加名为origin1的远程库,当然你也可以把名字换成别的。注意:这里的xiaokefeixia换成你的GitHub账户名。 下面就可以把本地库的所有内容推送到远程库上: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eabb9798.jpg) 用git push命令把本地库的内容推送到远程,实际上是把当前分支(关于分支,后面会讲到)master推送到远程。 以后只要本地做了提交。就可以使用git push origin1 master #把本地master分支的最新修改推送至GitHub。 **从远程仓库clone至本地** 和之前一样,先登录GitHub创建一个新的远程库,叫做clonegit,记得勾选一下: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eabd32ac.jpg) 这样就可以帮我们创建一个README.md文件,如图: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eabed2ca.jpg) 好了,远程库准备好了,下面咱再用git clone 命令来clone一个到本地: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eac26fc4.jpg) 然后把们将看到,用户主目录下多了一个clonegit目录,而且里面还有README.md和.git: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42eac3cc45.jpg) 这样我们就成功的从远程仓库clone了一个到本地了。是不是so easy呢~![得意](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-08-17_57b42ea93a909.gif) **小结**: 将本地仓库推送至远程仓库(以下的用户名及仓库名要换成自己的哦):   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即可。
';