Git学习-5 Git远程仓库

1.GitHub简介

GitHub是一个面向开源及私有软件项目的托管平台,因为平台只支持Git作为唯一的版本库格式进行托管,故名为GitHub,Hub的意思就是中心,所以GitHub就是Git中心。

2.GitHub注册与登录

注册:GitHub官网,弹出注册表单注册

登录:

3.免密登录原理

Git的本地仓库要不时的向github上读取或者推送数据,但每次登录,所以使用免密登录方便每次读取和推送。

免密登录机制:

Git主机间的通信采用的SSH协议,即Sercure Shell协议,该协议的免密登录机制要求主机之间采用SSH-key即SSH秘钥进行身份验证。SSH秘钥包含公钥和私钥;

公钥与私钥:

"公钥与私钥加密"是一种"不对称的加密方式",是传统的"对称加密方式"的功能的增强,最常见的对称加密方式是:用户名和密码方式。

公钥与私钥是成对的,一个公钥对应一个私钥,使用公钥加密后,只能使用私钥进行解密。公钥相当于"锁",私钥相当于"钥匙"。

4.免密登录的工作原理:

免密登录在master/slave主从集群中使用较多,且多用于master主机免密登录访问slave主机,所以对于免密登录原理的分析就以Master/Slave为例。

对于免密登录的机制,主要由两部分构成,构建和验证。

 

 

 5.设置本地库对GitHub的免密登录

本地版本库相当于master。

GitHub相当于Slave。

所以密钥对应于本地版本库生成,而GitHub中只需要保存公钥即可。

1>本地版本库主机的设置

A.查看密钥文件:

由于生成的密钥存放在本地版本库主机的当前用户主目录下的隐藏目录.ssh下面两个隐藏文件中,这两个文件分别是id_sra与id_sra.pub,其中id_sra中存放的是私钥,id_sra.pub中存放的是公钥,所以生成密钥前首先要看本地版本库主机的当前用户主目录,确认有没有.ssh目录;

打开git ll-a

B.本地库生成密钥

在本地版本库主机运行 ssh-keygen命令

C.再次查看密钥文件 ll-a .ssh 已经生成id_sra和id_sra.pub文件

2>对GitHub进行设置

登录GitHub官网,打开setting设置页面;

A.打开公钥填写页面

用户->settings->点击左侧SSH and GPG keys-->NEW SSH KEY

在本地库中打开用户主目录下的.ssh/id_rsa.pub文件,将公钥进行复制

填写公钥,打开页面放入key中,title:指明公钥所属即key的名称,可以随意定义;点击Add SSH Key即可看到gitHub中存放的公钥信息

3>创建GitHub远程空的版本库

A.打开创建库页面(登录GitHub官网,New repository页面右上角的加号)

B.填写创建库表单

  仅填入远程版本库名称即可Create repository,其他保持沉默,为了便于记忆,一般情况下远程版本库名称和本地版本库名称相同

C.创建远程版本库

进入空版本库页面,点击creating repository,即可进入远程版本库页面,远程版本库创建好之后,默认Git间的连接采用的是Https协议,较之SSH协议,HTTPS协议数据传输速度慢,且无法实现免密登录,即每次连接均需要输入用户名和密码,所以生产环境下一般采用的是SSH协议,所以首先要点击SSH,其后显示的就是远程版本库的地址;

D.远程版本库创建好之后是空的

例如:第二个建议:

将本地版本库内容推送push到远程仓库

(1)命令解析:

我们使用第二点建议,从本地库中推送已存在的版本库内容。

只需要本地库中运行给出的两条命令即可。

git remote add origin git@github.com:springuo/P2P.git

git remote add:意思就是远程仓库在本地的别名

为指定一个远程版本库命名一个本地名称,这里的远程版本库为git@github.com:springuo/P2P.git,为其起的本地名称为origin,其中远程版本库的git@表示以git用户访问,而仓库的具体地址为github.com主机中的springuo目录下的P2P.git,远程版本库目录一般以.git结尾

git push: 

git push origin master 将本地版本库中master分支推送到origin远程库

git push origin:将本地版本库中当前分支推送到origin远程版本库。

git push -u origin:本地版本库master分支推送到origin远程版本库,并将origin设置为默认的远程库,即以后所有git push就不用再指定远程版本库了。

git push:将本地版本库中当前分支推送到默认远程库

 6.命令执行

<6.1>本地库推送到远程库

(创建远程仓库->将本地仓库内容推送到远程仓库即可)

git bash第一次连接GitHub的时候本地库的Git系统会给出提示,GitHub站点主机的真实性不能确定,yes or no,然后再给出一个警告,以后再执行就不会出现这种警告了

 

查看远程仓库就可以看到内容;

 <6.2>从远程库clone到本地库

A.创建本地库存放目录

在要克隆远程版本库的本地库主机中创建要存放本地库的目录,本例在C盘的course目录下创建git2/repositories目录,将来用于克隆远程版本库的P2P版本库,注意,P2P版本库目录不用创建,它会从远程库中克隆出来。

创建路径D:\document\course\git\code

B.复制远程库地址

登录之后左侧找到远程仓库,点击clone or download,复制地址:git@github.com:SnowhiteVicky/P2P.git

选中之后要复制地址

C.运行克隆命令:

进入存放本地库的目录:D:\document\course\git\code,然后再运行克隆命令。

git clone 远程地址

当前目录出现远程仓库的代码;

 <6.3>从远程库pull到本地库

A.git2修改内容push到远程仓库 git push (能这么写是因为之前已经选择过了)

需要注意的是:如果git和git2不是同一台主机,这里运行的命令应该是:

git remote add origin git@....

git push -u origin master

由于git2与git是同一台主机模拟的,无需再指定git push命令的默认远程库了

B.git1从远程仓库拉取pull内容到本地仓库

git pull: 该命令运行的前提同样是前面指定过默认远程库,本例指定的默认远程库为origin,该命令等价于git pull origin master

git pull命令常见的用法:

git pull origin master:将远程库origin的master分支拉取到本地库与本地库的master分支合并;

git pull origin master:dev    将远程库origin的master分支拉取到本地并与本地的dev分支合并;

git pull:从默认远程库的拉取本地库当前分支内容并与本地库当前分支合并;

 

 

 

 

 

 

posted on 2018-09-06 16:05  companion  阅读(194)  评论(0编辑  收藏  举报