04_远程仓库
Github简介
之前我们已经讲了如何在Git仓库里对一个文件进行操作,这些操作与SVN其实没有什么区别,看不出Git的特点
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
在公司中况往往是这样,找一台电脑充当服务器,其他每个人都从服务器仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。不过现在,为了学Git先搭个服务器没有必要。
我们可以借助GitHub网站,GitHub 是一个版本控制和协作的代码托管平台,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
准备工作
首先需要各位自行注册Github账号。
由于本地GIt与Github仓库之间是通过SSH加密的,所以要先行设置一波。
创建SSH Key
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开终端(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "邮箱地址"
输入完成后,一路Next,不用在管了,直接敲回车就行。
如无意外,我们进入到用户主目录可以找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件就是SSH Key的秘钥,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,就随意了。
在Github上配置密钥
登陆之后,点击头像下的Settings
点击SSH and GPH keys
点击 New SSH Key
填写密钥,Title随意填写,在Key文本框里粘贴id_rsa.pub
文件的内容
点“Add Key”,你就应该看到已经添加的Key:
只有添加了SSH Key,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
如果你有多台电脑都需要连接这个github,就对添加几个Key就行了。
最后友情提示,虽然只有你能改,但是在GitHub上免费托管的Git仓库,任何人都可以看到,不要把敏感信息放进去。
添加远程仓库
我们现在的状况是本地已经有个远程仓库了。现在我想在Github上创建一个远程仓库,并且让这两个仓库同时工作。
登陆到Github,右上角+
号,然后New repository
输入仓库名称然后点击Create repository
点击SSH
,获取远程仓库地址
在本地的仓库执行命令,将本地仓库与远程仓库想关联
语法:
git remote add origin 远程仓库地址
比如我的就是:
git remote add origin git@github.com:Excellent-electrician/project.git
然后我们就可以将本地的仓库推送过去
git push -u origin master
origin表示远程仓库的意思,master表示分支
注意,第一次的时候会弹出SSH警告
填写yes
即可,下次就无需填写
推送完成后,在Github上就可以看到所有内容了。
后续如果本地仓库提交了新的内容,想推送到远程仓库
按照之前的操作,add
之后,再commit
,最后执行命令
git push origin master
克隆远程仓库
那如果是现有远程仓库的话, 我们也可以直接克隆远程仓库即可。
再在Github上创建一个仓库,这次勾选上Initialize this repository with a README
勾选这个后创建仓库会多一个README
文件
像这样已经有了远程仓库,如果需要克隆,就点击绿色的 Clone or download
点击后,你可能会看到如下
注意:github提供两种方式克隆与连接,一是Https,一是SSH
如图所示,Clone with HTTPS
表示使用的是HTTPS,而我们使用的是SSH,所以你需要点击User SSH
,点击后如下
在本地找一个目录存放远程仓库,复制出路径,然后通过命令
git clone 远程仓库地址
比如我的:
git clone git@github.com:Excellent-electrician/project2.git
结果如下:
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
你也许还注意到,GitHub给出的地址不止一个,实际上,Git支持多种协议,默认的git://
使用ssh,但也可以使用https
等其他协议。
使用https
除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh
协议而只能用https
。