GitHub使用指导
GitHub
用过Git的小伙伴想必都知道GitHub是个什么东东,我这里就简单介绍一下吧。Git是一个分布式的版本控制系统,而GitHub可以托管各种Git库,并提供一个Web界面,方便查看Git库的历史版本。GitHub使得版本控制更加容易,多人协作编码变得更加简单。使用过SVN的小伙伴应该知道,当没有网络的支持,开发者并没有办法提交已完成的代码。但是GitHub就比较牛掰了,它支持离线提交,其实也就是提交到本地仓库。每一个开发者clone下的项目代码都是一个完整的仓库,当远程或其他协作开发者的代码无法恢复时,都可以方便地使用本地的仓库进行恢复。并且更牛掰的是,当需要对代码进行分支时,其他版本控制软件在大量文件时会很慢,而Github几乎是瞬间完成这个操作,而且只需要一个命令即可,是不是牛逼哄哄。。。
好了,不扯那些没用的了,下面进入主题吧。
公钥与私钥
为什么这里又扯出来公钥与私钥的概念呢?当然是GitHub要用到啦,不然我扯它干嘛。。。
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
好吧,我承认上面这段是我从百度百科上摘下来的,其实我也没看懂,下面我就说说我对于GitHub中公钥的作用的理解吧。
在使用GitHub进行Git仓库托管时,GitHub是要求配置用户的公钥信息的。这样当你从GitHub上取数据时,实际上取过来的即是用你的公钥加密过的数据,这样就可以用你的与之对应的私钥进行解密了,因为它们总是成对生成的。同样的,你的PC端也保存了GitHub的公钥信息,当你朝GitHub上提交数据时,实际上数据也已经被GitHub的公钥加密过了,这样GitHub同样可以用与之对应的私钥进行解密了。这样就可以保证数据传输的安全性了。反正我是这么理解的,gaga。。。
那公钥私钥是怎么生成的呢?GitHub的公钥信息又是保存在哪里呢?
首先检查一下你的电脑现有的公钥私钥:cd ~/.ssh,如果提示No such file or directory,则说明你还没有公钥私钥,那当然是需要通过命令去生成一下的啦。也有可能你的.ssh目录下只有一个文件known_hosts,那就说明你是用过Git的,只是还没有用到过公钥私钥罢了。这个known_hosts就是用来保存其他系统的公钥信息的。假如你不仅使用过GitHub,还使用过其他的Git版本控制系统,它们的公钥信息都是一并保存在这里的。我记得在连接服务器时,服务器的公钥信息也是保存在这里的,记错了不要找我哈,我可不负责的。。。
1、生成公钥私钥
输入命令ssh-keygen -t rsa -C "邮件地址@youremail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<这里默认回车即可>
然后系统会要你输入密码。
Enter passphrase (empty for no passphrase):<输入加密串>
Enter same passphrase again:<再次输入加密串>
这个加密串会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是为了防止别人往你的项目里提交内容。
最后看到这样的画面,就表示公钥私钥生成成功了。此时,在你的.ssh目录下就多出了两个文件id_rsa.pub和id_rsa,分别对应公钥和私钥。

2、添加公钥到GitHub
复制id_rsa.pub中的内容,怎么复制就不要我来说了吧,开个玩笑。。。
登录到GitHub,点击右上角的Account Settings ---> SSH Public keys ---> add another public keys。
把刚才复制的内容粘贴到文本框中, 点击add key就ok了。

3、测试
可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改。
ssh -T git@github.com
如果是下面的反馈:
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
不要紧张,这是因为你是第一次连接GitHub,询问你是否继续连接的,直接输入yes就好,然后就会看到:
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
GitHub使用
1、建仓
登录到GitHub,选择New repository,然后填写项目名称和其他信息,如图:

这里的Add .gitignore,会根据你选择的语言自动生成对应的忽略配置,当然也可以自己修改。
点击Create repository创建项目,跳转到如下页面:

2、下面就可以直接clone了,或者也可以新建一个本地仓,然后执行pull、push、commit等操作啦。如果你和这些命令关系还都不错的话,相信应该知道怎么操作了。
3、知道了如何在Github上创建仓库,可能还有很多人不知道如何去删除一个仓库,Github上删除仓库也很容易,就是有点难找。以删除TEST仓库为例,点击仓库右边的setting。

跳转进入下一个页面,在页面最下方,就有如下图所示的删除铵钮。

结语
好了,关于GitHub的使用就介绍到这里了,如果有什么不懂的,可以参考这里。
GitHub使用指导的更多相关文章
- gitHub入门指导
Github可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性.为一个项目贡 ...
- Windows上传代码到github操作指导
操作环境 Windows7(32bit) 前提条件 1.完成msysgit工具安装.下载路径:官网或百度网盘路径Git-2.15.0-32-bit.exe.安装方法为一路Next按照默认选项执行就可以 ...
- CAP分布式事务 学习及简单demo
完全参考 github的指导 demo地址, Pub使用 efcore , Sub 使用 dapper, mysql数据库 https://files.cnblogs.com/files/xtxtx/ ...
- [0406]学习一个——Unit 1 Html、CSS与版本控制
前言 最近发现了Github的Student认证,本来想用来注册Digital Ocean搭个梯子,结果注册验证不能用VISA借记卡=~=. 那么在这漫长的清明节假期里,只有学习能满足空虚的内心(划掉 ...
- Kubernetes Dashboard的安装与坑【h】
1.前言 https://github.com/kubernetes/dashboard/releases kubectl apply -f https://raw.githubusercontent ...
- 搜刮一些开源项目的APP
iOS完整App资源收集 <iOS完整app资源收集> <GitHub 上有哪些完整的 iOS-App 源码值得参考?> <GitHub 上有哪些完整的 iOS-App ...
- [no code][scrum meeting] Beta 7
$( "#cnblogs_post_body" ).catalog() 例会时间:5月21日15:30,主持者:彭毛小民 下次例会时间:5月22日15:30,主持者:赵涛 昨日为5 ...
- [个人翻译]GitHub指导文件(GitHub Guides[Hello World])
[个人翻译]GitHub指导文件(GitHub Guides[Hello World]) Mirage_j个人翻译,欢迎转载,最好标明出处http://www.cnblogs.com/mirageJ/ ...
- CodeGuide 300+文档、100+代码库,一个指导程序员写代码的,Github 仓库开源啦!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.路怎样走,让你们自己挑 B站 视频:https://www.bilibili.com/vi ...
随机推荐
- ubuntu 14.04—解决软件中心进度条卡死的问题
软件中心下载安装软件进度条卡住了,这时候解决方法为: 先解锁: sudo rm -rf /var/lib/dpkg/lock 如果此时开启软件中心,发现进度还在, 那么我们需要找到相关的进程关闭他,使 ...
- HttpRequestMessage
mvc4中的WEBAPI,发现接收参数不是很方便,跟传统的request.querystring和request.form有很大区别,在网上搜了一大圈,各种方案都有,但不是太详细,于是跟踪Action ...
- 面试题-Java基础-异常部分
1.Java中的两种异常类型是什么?他们有什么区别? Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常.不受检查的异常不需要在方法或者是构造函数上声明,就算方 ...
- 用DriverBackUp备份了文件 装好系统后怎么把备份的驱动文件还原
1.打开DriverBackUp 2.菜单栏选择Restore 3.选择open backup file 4.找到备份文件位置,并选择.bki后缀的文件 5.点击"打开" 6.勾选 ...
- 敏捷开发之Scrum
现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中 ...
- MYSQL 主从复制(NIOT)
一.主数据库操作设置(A) 1.修改配置文件,vim /etc/my.cnf,然后重启mysqld,/etc/init.d/mysqld restart [mysqld]<要在mysqld中括号 ...
- aop代理方式引起的spring注入bean(实现类)与获取bean(实现类)出错
描述: 现象一 :A 为 接口,AImpl 为 A 的实现类,且 AImpl 受 aop 扫描,且 aop 无特殊配置 此时若:Spring 中 注入 AImpl 类型的bean,获取一样 ...
- box-size
<style> *{ margin:0; padding:0; list-style:none; font-family:"\5FAE\8F6F\96C5\9ED1"; ...
- hibernate java.sql.SQLException
异常:java.sql.SQLException oracle.net.ns.NetException java.net.ConnectException 提示:The Network Adapter ...
- 自动安装Redis服务端与PHP扩展Redis
该脚本基于阿里云服务器安装脚本,并只能运用于centos / aliyun os,该脚本使用时,需要与阿里云安装脚本的install.sh放在同一目录下.有缘人切忌乱用: #! /bin/bash # ...