搭通自己的电脑与GitHub的传输通道

摘要:
“GitHub是开源和私有软件项目的托管平台。它之所以命名为GitHub,是因为它支持Git作为托管的唯一版本库格式。当然,GitHub允许您添加多个密钥。Git支持多种协议,包括https,但它支持
一、远程仓库怎么玩

1. 自己搭建一个运行Git的服务器

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,但肯定有一台机器有着最原始的版本库,然后别的机器来克隆这个原始版本库,这样子就没有主次之分!因此,很多时候,我们会找一台电脑来充当服务器的角色,每天24小时开机,便于其他人从这个“服务器”仓库克隆到自己的电脑上,并且各自把各自的提交推送到服务器仓库,也从服务器仓库中拉取别人的提交。

2. 注册GitHub免费获得Git远程仓库

"GitHub是一群有趣的人在做的有趣的事,如果只把GitHub当做一个Git服务器,实在暴殄天物。"

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

Git的吉祥物是由小章鱼和小猫组合而成,名字叫做Octocat(章鱼猫)。

搭通自己的电脑与GitHub的传输通道第1张

二、搭通自己的电脑与GitHub的传输通道

1.步骤

第1步:创建SSH Key

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

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

然后一路回车,使用默认值即可,密码可不用设置。

成功:可在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是 SSH Key 的密钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

搭通自己的电脑与GitHub的传输通道第2张

搭通自己的电脑与GitHub的传输通道第3张

第2步:在GitHub放入你的SSH Key

登陆GitHub,打开Account settings -> SSH Keys页面:点Add SSH Key,填上任意Title,在Key文本框里粘贴 id_rsa.pub 文件的内容。保存即可。

搭通自己的电脑与GitHub的传输通道第4张

搭通自己的电脑与GitHub的传输通道第5张

搭通自己的电脑与GitHub的传输通道第6张

2.为什么GitHub需要SSH Key?

因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

提示 :在GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能修改)。所以,建议不要把敏感信息放进去。

3.不想让别人看到你的Git库?

如果你不想让别人看到Git库,有两个办法,一个是付费,让GitHub把公开的仓库变成私有的,这样别人看不见(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见(公司内部开发利器)。

三、添加远程仓库

1.情景

本地有一个Git仓库 -> 在GitHub创建一个仓库 -> 让这两个仓库进行远程同步

(这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。)

2.步骤

第1步 创建新库

确定好本地上要远程添加的仓库myrepo,登陆GitHub,然后在右上角找到Create a new repo按钮,创建一个新的仓库:

搭通自己的电脑与GitHub的传输通道第7张

搭通自己的电脑与GitHub的传输通道第8张

第2步 设置新库

在创建新仓库页面在 Repository name 填入myrepo,其他保持默认设置,点击下面的绿色按钮Create repository,就成功创建了一个新的Git仓库:

搭通自己的电脑与GitHub的传输通道第9张

搭通自己的电脑与GitHub的传输通道第10张

在上图中,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

第3步 本地关联

于是,根据GitHub的提示,在本地的myrepo仓库下运行命令:

$ git remote add origin git@github.com:dopppler/myrepo.git

提示 :注意替换成你的名字,否则关联的我的远程库,关联没有问题,但是你以后是推送不上去的,因为你的SSH Key公钥不在我的账号列表中。

第4步 本地推送

把本地库的所有内容推送到远程库上:

搭通自己的电脑与GitHub的传输通道第11张

把本地库的内容推送到远程,用git push命令。

实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

推送成功后,就可以在GitHub页面中看到远程库的内容已经和本地一样了:

搭通自己的电脑与GitHub的传输通道第12张

从现在起,只要本地作了提交,就可以通过命令: $ git push origin master

把本地master分支的最新修改推送至GitHub,至此,你就拥有了真正的分布式版本库!

提示:第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要确认GitHub的Key指纹是否真的来自GitHub的服务器,输入yes回车即可。随后,Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表中,后面的操作不会再出现警告了。

3.总结

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容。

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改。

分布式版本系统的最大好处之一 :在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的。当有网络的时候,再把本地提交推送一下就完成了同步,太方便了。

四、从远程库克隆

1.情景

当我们从零开发时,一般会这样做:先创建远程库 -> 从远程库克隆到本地

2.步骤

第1步 创建新库

在GitHub创建一个新的仓库。

搭通自己的电脑与GitHub的传输通道第13张

注:勾选下面的选项Initialze this repository with a README,GitHub就会自动为我们创建一个README.md文件。

搭通自己的电脑与GitHub的传输通道第14张

第2步 本地克隆

用命令git clone克隆一个本地库。

$ git clone git@github.com:dopppler/hellogithub.git

提示:注意把Git的地址换成自己的。

搭通自己的电脑与GitHub的传输通道第15张

如果是多人协作开发,那么每个人各自从远程克隆一份就可以了。

也许你还注意到,GitHub给出的地址不止一个,还可以用https://github.com/dopppler/hellogithub.git这样的地址。实际上,Git支持多种协议,默认的git://使用 ssh,但也可以使用 https 等其它协议。

使用 https 除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放 http 端口的公司内部就无法使用ssh协议而只能用 https。

3.总结

要克隆一个仓库,首先必须知道仓库的地址,然后使用 git clone 命令去克隆。

Git支持多种协议,包括 https ,但通过 ssh 支持的原生git协议速度最快。

免责声明:文章转载自《搭通自己的电脑与GitHub的传输通道》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇encodeURI 解码 编码2.一号店首页特效下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

仓库文件SVN总结java教程

题记:写这篇博客要主是加深自己对仓库文件的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。 1,SVN是什么? svn---subversion是现在最风行的一款 项目源码代管理软件. 经常使用的项目源码代管理软件: 1.cvs 2.svn 3.vss 4.clearcase subversion(简称svn)是近年来起崛的版本管理软件(码...

Git本地上传口令

$ cd /d/GitProject (进入要上传的文件的文件夹) $ git pull (更新本地库) $ git add . (添加文件夹中所有的文件) $ git commit -m "Remember" (提交) $ git remote add origin https://github.com/linmob2567/...

git使用七克隆远程库

如何从远程库克隆? 上面我们了解了先有本地库,后有远程库时候,如何关联远程库。 现在我们想,假如远程库有新的内容了,我想克隆到本地来 如何克隆呢? 首先,登录github,创建一个新的仓库,名字叫testgit2.如下: 如下,我们看到: 现在,远程库已经准备好了,下一步是使用命令git clone克隆一个本地库了。如下所示: 接着在我本地目录下 生成...

centos7下安装composer和git

一、安装composer composer 属于php的包依赖管理工具。 1、进入Composer国内镜像网站文档页查看安装方法: https://docs.phpcomposer.com/00-intro.html 2、在centOS系统中进入特定目录执行以下命令: cd /usr/local/composer curl -sS https://...

git 修改已提交了的备注信息的方法

git 修改已提交了的备注信息的方法: 1、当我们已通过 git commit -m '已提交的最新的备注' 命令将代码提交到了缓存区,或者进一步执行了 git push origin master 命令已将代码推送至 git 服务端,发现已备注的信息并不能准确的表达我们的意思,想修改,那么我们可以执行 git commit --amend 命令:git...

Github命令详解

Git bash: ***创建本地版本库: $ cd d: $ mkdir git $ cd git $ mkdir test $git init //初始化本地库 ***创建文件并添加到版本库 1. 用除了记事本以外的文本编辑工具新建readme.txt, 保存成UTF8 without BOM 2. git add readme.txt //文件添加到...