前面的话

  本文将主要介绍如何使用Github来托管Git服务

SSH

  大多数Git服务器都会选择使用SSH公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权

  首先先确认一下是否已经有一个公钥了。SSH公钥默认储存在账户的主目录下的~/.ssh目录

  有.pub后缀的文件就是公钥,另一个文件则是密钥

  假如没有这些文件,或者干脆连.ssh目录都没有,可以用ssh-keygen来创建

  现在,删除.ssh目录,对SSH重新生成

  下面使用ssh-keygen命令来创建SSH,这里需要把邮件地址换成自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码

  如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人

  SSH的公钥如下所示:

  接下来,登陆GitHub,打开“Settings”,“SSH Keys”页面

  然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

  点击"Add SSH key"按钮后,结果如下所示:

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

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

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

添加本地库

  下面添加一个名称为'mygit'的本地库,工作目录下有一个名称为'a.txt'的文件,其内容是'111',并被提交

添加远程库

  现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作

  下面要建立一个名称为'learngit'的仓库,由于事先已经添加过了。所以,先把其删除

  进入'learngit'的仓库界面,找到'Settings'按钮

  在页面最下方,找到'Delete this repository'按钮

  点击该按钮后,输入要删除的仓库名称,点击'I understand the consequences, delete this reposiytory'按钮即可删除

  接下来,重新添加名称为'learngit'的仓库。点击右上角'+'号弹出的'New repository'

  输入仓库名称Repository name为'learngit',仓库介绍Description为'learn git',点击'Create repository'按钮,即可添加成功

  添加成功后,弹出如下界面。目前,在GitHub上的这个'learngit'仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库

  接下来,需要对远程库'learngit'和本地库'mygit'进行关联

$ git remote add origin git@github.com:【GitHub帐号名】/【远程库的名称】.git

  添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库

  如果已经进行了关联,或者关联错了,则需要先删除关联

$ git remote rm origin

  删除后,重新添加关联

  接下来,把本地库'mygit'里的所有内容推送到远程库'learngit'中

  把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程

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

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

  从现在起,只要本地作了提交,就可以通过以下命令,把本地master分支的最新修改推送至GitHub

$ git push origin master

克隆远程库

  前面我们介绍先有本地库,后有远程库的情况。现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆

  首先,登陆GitHub,创建一个新的仓库,名字叫gitskills

  勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件

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

$ git clone git@github.com:【GitHub用户名】/【Github远程库名称】.git

  在本地电脑的D盘新建一个名称为'b'的目录,然后将远程库克隆到本地

  此时,本地已经有gitskills目录,在该目录下已经有README.md文件了

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

Git托管的更多相关文章

  1. 关于git托管的一些心得

    GIT托管的一些心得 熟练运用软件进行GIT托管的好处 在上一周的学习中,我提出来了一个疑惑,就是为什么一定要用软件托管而不选择web托管,在这周的学习中,我通过实践体会到了一些运用软件托管的好处: ...

  2. 如何更换git托管

    有时候会遇到需要更换代码托管平台,从github,gitlab或者Bitbucket迁移到其它平台,过程中可能遇到不少问题,本文从是否保留历史提交记录两种需求出发,介绍一下基于git托管平台的迁移方法 ...

  3. 一只代码小白git托管路上的二三事

    [经验]一只代码小白git托管路上的二三事 写在前面的话 寒假的时候,娄老师给我们布置了代码托管的作业,并要求把托管地址发给学委.因假期的时候没有带电脑回家,所以只是在手机上草草注册了,也稀里糊涂就将 ...

  4. 【01】国内外git托管平台(总结by魔芋)

    [01]国内git托管平台介绍 01, github:代码协作平台,协同开发. 代码托管平台. git:项目版本控制系统 02, 最好的托管方式: github 关闭或小众的托管方式: geakit( ...

  5. 使用git版本控制器C#工程,git托管到GitHub和visual studio on line

    类比TFS, 托管到了VS online,为私有.GitHub上托管的代码为开源. 新建工程选择版本控制器"Git" VS online: 本地: GitHub,下载github ...

  6. 开源中国(oschina)的Git托管

    一些废话 对于使用CVS/SVN出身的人来说,Git始终有点难上手(比如我),因为概念较多,一时理不清,尽管网上已经有很多教程,其实后来我发现,要掌握它的办法就是使用它,着手开始用它做源码管理,有问题 ...

  7. azure git 托管

    azure git上传部署步骤:(首次提交)cd 至本地代码路径git initgit add .git commit –m "initial commit"git remote ...

  8. jenkins构建&发布git托管的VS工程

    顺便做个笔记,以防以后再踩坑:笔者用的是jenkins-1.620和git-2.7.2-64-bit.exe,操作系统是win10(本机) jenkins安装完成之后 如果想要配合git完成拉取代码. ...

  9. pycharm配置Git托管

    利用Pycharm和github管理代码转载https://www.cnblogs.com/feixuelove1009/p/5955332.html git教程--廖雪峰git教程  转载https ...

随机推荐

  1. 简单说说NoHTTP

    学习NoHttp的原因是由于公司之前做的产品使用的网络请求框架一直都是Volley(为什么使用Volley就不用多说了,最起码是谷歌开发团队自己搞的,总感觉权威一些),可是自从android6.0推出 ...

  2. javascript组成概述认识

    这里的JavaScript组成概述是说的在浏览器端渲染的JavaScript而不是nodejs js组成概述 js的完整实现是由ECMAscript.DOM.BOM三个部分组成的: -ECMAscri ...

  3. Android Http请求头与响应头的学习

    本节引言: 上节中我们对Android涉及的网络编程进行了了解,也学习了下Http的基本概念,而本节我们 要学习的是Http的请求头与响应头,当然,可以把也可以把这节看作文档,用到的时候来查查 即可! ...

  4. 【2017-02-23】switch...case...和for循环

    1.代码简化折叠: #region 标题 ... ... #endregion 一.switch...case... 1.格式 switch(变量){ case 值:代码段;break; case 值 ...

  5. Asp.Net 常用工具类之Office-文档操作(6)

    文档一直是老大难问题,君不知,代码用时方恨少!有一套成熟的文件帮助类能很大程度上减少寻找各种资料的时间. 记得以前做一个业务,需要导出协议,一份可编辑,一份不可编辑.那么Word和PDF是最好的选择, ...

  6. Unity Shader 知识点总结(二)

    紧接着上一篇文章的shader入门知识的总结,本文主要总结shader中的纹理贴图.透明度混合.顶点动画.后期特效处理等操作.如果有什么地方有错,请指出更正,谢谢.本文的代码主要来自开源书:unity ...

  7. java利用“映射文件访问”(MapperByteBuffer)处理文件与单纯利用Buffer来处理文件的快慢比较

    处理文件是java经常使用的操作,在对一个“大文件”(比如超过64M)进行操作时一点点速度的提高都会带来性能的巨大提升.然而我们经常使用的BufferxxStream,来直接处理大文件时,往往力不从心 ...

  8. Spring Boot HTTP over JSON 的错误码异常处理

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “年轻人不要怕表现,要敢于出来表现,但还是那句话,要有正确的度,你的表现是分析问题和解决问题的能 ...

  9. 在VM中给Linux安装Tool

    1.导入tool 2.解压tool 3.打开终端,进入tool的目录,输入  ./XXXXXXX.pl 4.进入安装界面,不断回车即可

  10. JAVA基础知识(1)

    1.JAVA的三大体系:JME(微缩版),JSE(标准版),JEE(企业版): 2.JAVA的三大核心机制:JAVA虚拟机,垃圾回收机制,代码安全性检测 3.java开发集JDK 4.java编译器j ...