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 ...
随机推荐
- MySQL data路径为空解决方法
CMD x:\mysql\5.7.12\bin>mysqld --initialize-insecure --user=mysql
- Openjudge-NOI题库-垂直直方图
题目描述 Description 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. ...
- iOS 最新App提交上架流程及部分问题的解决方案2016.12.21,感谢原博主!!!
内容摘自http://www.cocoachina.com/bbs/3g/read.php?tid=330302,原博特别详细,下面我对部分地方进行了修改,主要是对在打包验证和上传的时候遇到的问题进行 ...
- S.O.L.I.D五大原则之单一职责SRP
转自 : 汤姆大叔的blog Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是: The Single Responsibility Principle(单 ...
- Hadoop fs 命令详解
1. 环境:hadoop-2.6.0 2. 参数说明: hadoop fs [-appendToFile <localsrc> ... <dst>] [-cat [-ignor ...
- ueditor1.4.3 在IE8下的 BUG
ueditor1.4.3 .net 版 在IE8 下,多图片上传完成后,点击确认时报错,无法插入图片到编辑器中 原因是 ueditor.all.js 中的 24835 行 if (whitList[ ...
- 8. Shell 文件包含
1. 语法 . filename # 注意点号(.)和文件名中间有一空格 或 source filename ### test.sh #!/bin/bash url="www.baidu.c ...
- 安装aptana(1)
以前在myeclipse8.5上装了aptana,现在用myeclipse2014了,但是用原来的方法没有安装上,网上搜了下,发现都是老的方法,对新版的myeclipse已经不适用了,下面是转载的一篇 ...
- linux的用户,群组和其他用户
1 linux 安全模型:(多任务,多用户的操作系统) 1)使用user和group控制使用者对文件的存储权限. 2)用户使用账户和口令登录linux 3)每个文件都有owner(创建者),owner ...
- RF环境搭建
官网:http://robotframework.org/ 序号 安装包名 安装方法 下载地址 备注 1 python exe文件,直接双击安装 https://www.python.org/down ...