04_远程仓库

Github简介

之前我们已经讲了如何在Git仓库里对一个文件进行操作,这些操作与SVN其实没有什么区别,看不出Git的特点
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。
在公司中况往往是这样,找一台电脑充当服务器,其他每个人都从服务器仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。不过现在,为了学Git先搭个服务器没有必要。
我们可以借助GitHub网站,GitHub 是一个版本控制和协作的代码托管平台,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。

准备工作

首先需要各位自行注册Github账号。
由于本地GIt与Github仓库之间是通过SSH加密的,所以要先行设置一波。

创建SSH Key

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开终端(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -t rsa -C "邮箱地址"

输入完成后,一路Next,不用在管了,直接敲回车就行。
如无意外,我们进入到用户主目录可以找到.ssh目录,里面有id_rsaid_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

posted @ 2021-04-22 14:26  简小虫  阅读(67)  评论(0编辑  收藏  举报