如何创建Git本地仓库与服务器端仓库的关系

HTML5学堂-利利:关于Git的知识,我们共分成了四个大步骤进行讲解,之前我们提到了Git的安装与配置、Git在本地的使用方法,今天我们要讲解的就是如何创建Git本地仓库与服务器端仓库的关系。

今日内容:

一图胜千言,先看下图:

HTML5学堂之前的第一篇Git的文章,书写的是关于Git的安装以及初始化等操作,第二篇Git的文章,书写的是如何在本地操作Git,今天我们就来讲解如何通过Git把代码从本地推送到服务器端;而后面我们还有一篇文章,就是关于Git的多人协作(由于利利当前事情比较多,所以一篇一篇来吧~)

主要内容目录

  1. GitHub服务器的搭建
  2. SSH Key
  3. 本地创建SSH Key
  4. GitHub上设置SSH Key,从而创建“关系”
  5. 在GitHub上创建仓库
  6. 在本地添加仓库
  7. 将本地库的内容发送到服务器的仓库
  8. 从Git上克隆文件
  9. SSH警告
  10. 回看SVN与Git的区别
  11. 从GitHub中删除文件

将Git版本库与他人共享

我们可以将同一个Git仓库,分布到不同的机器上。在最早时,只有一台机器上存在一个原始的版本库,之后,其他的机器可以“复制”这个版本库,而且每台机器的版本库都是一样的,并没有主次之分。

在开发当中,我们会找一台电脑充当服务器的角色,24小时开机,其他每个人都可以从这个“服务器”将版本库中的文件,复制一份到自己的电脑,也能够将各自的文件,提交到服务器仓库里,也可以从服务器仓库中拉取别人提交的文件。

服务器搭建

服务器方面,一种是自己搭建服务器,另一种是借助GitHub。关于GitHub的使用,请参照HTML5学堂官网之前的文章《GitHub的用法》。

我们可以在GitHub上放置我们的代码,由于GitHub是一个开源网站,因此上传的代码所有人都可以看到,默认也是不需要给GitHub缴费的。不过,只有用户自身才能够修改上传的代码。

HTML5学堂温馨提醒:由于GitHub中的代码所有人可见,所以建议不要把关于自己的私人信息或敏感信息放进去。

HTML5学堂温馨提醒:如果你不想让别人看到你的代码,可以给GitHub交“保护费”,将代码库变成私有;当然,也可以自己购买一个服务器。


有了环境配置之后,我们就能够进行Git与GitHub的相关操作的,但是,先等等,我们得先了解一个东西 —— SSH Key

SSH Key

什么是SSH Key?

SSH key:由于github的代码是开源的,每个人都可以查看代码,但是只有自己能够修改代码,那么github如何识别出提交是用户本人推送的呢?SSH Key就如同一把“钥匙”,只有这把钥匙才能够针对相应的代码进行操作。

为何要设置SSH Key?

机器本地Git仓库和GitHub仓库之间的传输,是通过SSH进行加密的,因此需要设置SSH Key。


准备性的知识我们学完了,接下来我们来了解一下如何进行配置和操作。

1 本地创建SSH Key

在用户Git仓库的主目录下,查看有没有.ssh目录,查看.ssh目录下有没有id_rsa和id_rsa.pub文件,如果有,可直接跳到下一步。

如果没有,打开Git Bash,创建SSH Key

输入如下命令(注意:邮件地址需要换成你自己的)然后“回车”

$ ssh-keygen -t rsa -C "email@XXX.com"

可以在用户主目录(我的是在C盘的User[用户]当中)里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人

2 GitHub上设置SSH Key,从而创建“关系”

2.1 打开“Settings”

2.2 选择“SSH and GPG Keys”

2.3 点击“New SSH Key”

2.4 填上相应的Title,在Key文本框里粘贴id_rsa.pub文件的内容

2.5 点“Add Key”,你就应该看到已经添加的Key

Plus:

GitHub允许添加多个Key。假定有若干电脑,只要把每台电脑的Key添加到GitHub,就可以在每台电脑上向GitHub上推送了

3 在GitHub上创建仓库

登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库

在Repository name填入“工程的名称(最好是使用英文)”,再填写上Description,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库

4 在本地添加仓库

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

git remote add origin git@github.com:iceswan/h5coursetesting.git

(此处的iceswan/h5coursetesting.git为具体你的GitHub的链接地址)

5 将本地库的内容发送到服务器的仓库

git push -u origin master

代码解释:远程库的名字就是origin,这是Git默认的叫法。在GitHub当中添加仓库之后就可以把本地库的所有内容推送到远程库上了。

-u参数,通常在第一次推送master分支时使用。Git除了会把“本地的master内容推送到服务端的master分支”之外,还会把本地的master分支和服务端的master分支关联起来,从而让我们在以后的推送或者拉取时简化命令。

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

如果不是第一次推送的话,可以使用如下命令来推送最新修改

$ git push origin master

6 从Git上克隆文件

当然也有可能不进行推送,而是先从Git上克隆文件

$ git clone git@github.com:iceswan/h5coursetesting.git

(此处的iceswan/h5coursetesting.git为具体你的GitHub的链接地址)

7 SSH警告

当第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.

RSA key fingerprint is xx.xx.xx.xx.xx.

Are you sure you want to continue connecting (yes/no)?

SSH连接在第一次验证GitHub服务器的Key时,需要用户确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

如果担心有人冒充GitHub服务器,输入yes前可以对照GitHub的 Key的指纹信息是否与SSH连接给出的指纹信息一致。


讲完整体之后,说一些额外的,在之前HTML5学堂的第一篇文章当中,我们提过SVN和Git的区别,当前我们再拿出来看一下,就会发现,应该能够更清楚的理解这两者对网络的依赖了~另外,关于如何从GitHub当中删除文件,也书写了一个小demo

回看SVN与Git的区别

SVN在没有联网的时候是拒绝干活的

Git在本地工作完全不需要考虑远程库的存在,没有联网也可以正常工作,当有网络的时候,再把本地提交推送到服务器都就完成了同步

从GitHub中删除文件

$ git rm 文件名
$ git commit –m 注释
$ git push origin master

HTML5小编-利利~10hours

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2016-06-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏地方网络工作室的专栏

打造前端MAC工作站(十)效率工具 Browsersync ,文件保存浏览器自动刷新

打造前端MAC工作站(十)效率工具 Browsersync ,文件保存浏览器自动刷新 前言 当我们在开发vue+webpack的项目时候,发现有一点非常好,就是...

21710
来自专栏Felix的技术分享

Docker简单使用

17611
来自专栏Web 开发

ubuntu学习手札——中文设置,源设置等等最基本的

3. 对于类似“哪个源更快”这样的问题,并没有一个标准答案。每个人的网络状况有不同,不同网站的下载速度对会不同。更改完设置之后,在Software Sour...

591
来自专栏搜云库

Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测...

2096
来自专栏前端真相

邂逅seajs 和spm

1474
来自专栏IT可乐

Linux系列教程(二)——Linux系统安装(手把手学安装centos6.8)

  在上一篇博客我们简单的介绍了Linux系统的起源,这篇博客我们将通过图示一步一步教大家如何安装Linux系统。注意这里我们选择安装的Linux系统是其一种发...

2047
来自专栏菩提树下的杨过

serv-U 7以上版本pasv端口的设置及中文乱码问题

利用serv-u架设ftp服务器已经是再常见不过了事情了,近日一朋友为图新鲜,弄了个7.4版本的新玩意儿,结果架设上去后,仅开了21端口,用LeapFtp在po...

1739
来自专栏bboysoul

使用rsync搭建centos的镜像站

自己一直以来相搭建一个开源镜像站,一方面可以了解搭建镜像站的知识,一方面可以同步那些国内没有的linux发行版软件源,但是最主要的原因只是为了好玩

581
来自专栏小白安全

自用一键脚本搭建RSS翻墙

直接列出一键脚本 CentOS/Debian/Ubuntu ShadowsocksR单/多端口一键管理脚本: 主用下载地址: yum -y...

4068
来自专栏卡少编程之旅

fiddler抓包工具(windows)

44915

扫描关注云+社区