3. git远程仓库

一、远程库github SSH公钥上传

Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。在一个项目开发的最初阶段,只有一台电脑上有一个原始版本库。此后,别的电脑可以“克隆”这个原始版本库。
github就是这样的一个远程仓库,为我们提供免费的Git仓库托管服务。本地仓库和Github仓库之间的传输是通过SSH加密的。在申请注册Github账户后,需要进一步进行ssh相关的设置,才能方便地拉取和推送。

第1步:创建SSH Key。
在用户主目录下,看看有没有.ssh 目录,键盘输入ctrl+H就可以显示隐藏文件和隐藏文件夹。如果有,再看看这个目录下有没有 id_rsa 和 id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。
如果没有,则需要打开命令行窗口输入如下指令,创建SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

将上述邮箱换成github注册时使用的邮箱,然后回车使用默认值即可创建SSH Key。
上述指令完成后,主目录里将会出现名为.ssh的隐藏目录。
在这里插入图片描述

该目录下有 id_rsa 和 id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,需要拷贝其内容到GitHub。

第2步:登录GitHub,进入Settings-> SSH and GPG keys
在这里插入图片描述

选择New SSH key
在这里插入图片描述

将主文件目录下的.ssh文件夹中,id_rsa.pub这个文件中的内容拷贝到网页中Key的位置。
在这里插入图片描述

添加自己的标题,然后确认Add SSH key即可完成SSH密钥对的公钥上传。只有当GitHub知道了我们的SSH公钥,才能确认是本人的上传。当我们有多台电脑时,只需要将每台电脑的Key都添加到Github,就可以在每台电脑上往GitHub推送了。
在这里插入图片描述

二、添加远程库

现在的情况是,我们已经在本地创建了一个 Git 仓库后,又想在 GitHub 创建一个 Git 仓库, 并且让这两个仓库进行远程同步,这样,GitHub 上的仓库既可以作为备份,也可以让其他人通过该仓库来协作。
首先,登录GitHub,在右上角找到“Create a new repo”按钮,点击创建新的仓库:
在这里插入图片描述

输入想要创建的仓库名字git_study,其它的保持默认,然后点击Create repository就可以创建公开的代码仓库。如果不想让别人看到可以选择Private,创建私有仓库。
在这里插入图片描述

Git仓库建立完成后,将会出现以下界面:
在这里插入图片描述

目前,在GitHub上这个git_study仓库还是空的。我们可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
那么如何将本地仓库与远程仓库关联,需要按照github的提示,在本地的git_study仓库下,使用如下指令:

git remote add origin git@github.com:Yangbit666/git_study.git

在这里插入图片描述

添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的,但是 origin 这个名字是远程库的常规叫法。
下一步,就可以将本地库所有的内容都推送到远程库上:

git push -u origin master

在这里插入图片描述

使用git push就可以将本地的master分支推送到远程origin仓库。其中-u是因为这是第一次push,我们不但需要将本地的master分支内容推送到远程新的master分支,还需要把本地的master分支和远程的master分支关联起来。
在之后对readme的更改,可以只输入如下指令来推送到远程仓库:

git push origin master
二、从远程库克隆

对于上述场景,我们是先有了本地库,再创建远程库,然后通过remote add进行关联。一般来说,如果我们从零开发,最好的方式是先创建远程库,然后从远程库克隆。
第一步
登陆GitHub,创建一个新的仓库,名为git_skills:

在这里插入图片描述

现在,远程库已经准备好了,下一步是用命令 git clone 将远程库克隆到本地:

git clone git@github.com:Yangbit666/git_skills.git

注意GitHub提供了两种克隆方式,https和ssh。通常使用ssh会更快,但是对于只开放了https端口的公司,只能使用https的传输方式。
在这里插入图片描述

这样我们就实现了远程仓库克隆到本地的操作。

我们在git_skills下添加一个测试文件readme.md来模拟我们对于远程仓库的改动。
在这里插入图片描述

当我们想要使用:

git push -u origin master

时会发现如下错误:
在这里插入图片描述

错误提示无法推送,再来看我们之前的git_study仓库,发现它就可以正常推送。这两个仓库的区别在于先前的git_study仓库是从本地关联到远程仓库的,也就是先有本地,后有远程。
但是我们后来的git_skills仓库是先有远程,后有本地。
这两个仓库所在的默认分支不同:
在这里插入图片描述

可以看到git_skills仓库所在的分支是从远程仓库克隆来的main分支,而git_study则是从本地创建的master默认分支。所以对于git_skills输入:git push origin master会发现,本地没有master分支。而当我们输入:

git push origin main

就会发现,可以将本地的main分支,上传到origin远程仓库。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值