139.00.004 Git学习-远程仓库之Github
“有了远程仓库,妈妈再也不用担心我的硬盘了。”——Git点读机
本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三……):远程仓库。
一、 注册github
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
在继续阅读后续内容前,请自行注册GitHub账号。
二、SSH加密
由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
2.1 第1步:创建SSH Key
由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在此之前,必须要生成SSH key。
在用户主目录([c盘->用户->自己的用户名->.ssh])下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值
即可。
由于这个Key也不是用于军事目的,所以也无需设置密码。
公钥:id_rsa.pub
(可以放心地告诉任何人。)
私钥:id_rsa
(不能泄露出去)
2.2 第二步: GitHub - Account settings - SSH Keys
点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件内容
2.3 Why SSH ?
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。公司内部开发必备。
三、Local to Repository - Push
3.1 关联远程库
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
3.2 第一次推送push -u
关联后,使用命令git push -u origin master
第一次推送master
分支的所有内容;
3.3 提交修改push
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
四、Repository to Local - Clone
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone
命令克隆。
GitHub给出的地址不止一个,还可以用https://github.com/usrname/gitskills.git
这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。