GitHub 基本常用知识解答
1、Fork、Watch、Star 是什么意思?
fork的意思是从别人的代码库中复制一份到你自己的代码库,与普通的复制不同,fork包含了原有库中的所有提交记录,
fork后这个代码库是完全独立的,属于你自己,你可以在自己的库中做任何修改,当然也可以通过Pull Request向原来的库提交合并请求。
顺便说一下Watch和Star:
Watch,意思是关注,关注后,代码库中有新的commit你都会收到通知;
Star,与watch不同,star相当于收藏,你可以方便地找到你star过的库,但是不会收到关于那个库的任何通知。
2、gitHub 上的SSH公钥 是什么意思 ?
作用:使用SSH公钥可以让你在你的电脑和Git@OSC通讯的时候使用安全连接
通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名和密码,两者满足一定规则就可以登录。但是密码认证有以下的缺点:
- 用户无法设置空密码(即使系统允许空密码,也会十分危险)
- 密码容易被人偷窥或猜到
- 服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人
而使用公钥认证则可以解决上述问题。
- 公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦
- 多个使用者可以通过各自的密钥登录到系统上的同一个用户
公钥认证的原理
所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;
另一个称为密钥(private key),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。
ssh 的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。
为了说明方便,以下将使用这些符号。
| Ac | 客户端公钥 |
| Bc | 客户端密钥 |
| As | 服务器公钥 |
| Bs | 服务器密钥 |
在认证之前,客户端需要通过某种方法将公钥 Ac 登录到服务器上。
认证过程分为两个步骤。
- 会话密钥(session key)生成
- 客户端请求连接服务器,服务器将 As 发送给客户端。
- 服务器生成会话ID(session id),设为 p,发送给客户端。
- 客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
- 客户端将 r 用 As 进行加密,结果发送给服务器。
- 服务器用 Bs 进行解密,获得 r。
- 服务器进行 r xor p 的运算,获得 q。
- 至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
- 认证
- 服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端
- 客户端使用 Bc 解密 S(x) 得到 x
- 客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥
- 服务器计算 q + x 的 md5 值 m(q+x)
- 客户端将 n(q+x) 发送给服务器
- 服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功
3、.gitignore文件
.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。
一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。
我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。
这时我们就需要.gitignore了。比如一般c#的项目我的.gitignore是这样写的:
4、 Git fetch和git pull的区别
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含义:
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上之后再进行比较合并
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些因为在merge前,我们可以查看更新情况,然后再决定是否合并
GitHub 基本常用知识解答的更多相关文章
- GitHub 基本常用知识解答2
1.如何拥有一个Git仓库的两种途径 (1)在已有的目录中,初始化一个新的. (2) 比如一个新的项目,或者一个已存在的项目,但该项目尚未有版本控制.如果你想要复制一份别人的项目, 或者与别人合作某个 ...
- 打造自己的Android常用知识体系
前言 Android常用知识体系是什么鬼?所谓常用知识体系,就是指对项目中重复使用率较高的功能点进行梳理.注意哦,不是Android知识体系. 古语道:学而不思则罔,思而不学则殆.如果将做项目类比为“ ...
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结
篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...
- javascript常用知识点集
javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...
- AngularJS进阶(十二)AngularJS常用知识汇总(不断更新中....)
AngularJS常用知识汇总(不断更新中....) 注:请点击此处进行充电! app.controller('editCtrl',['$http','$location','$rootScope', ...
- jQuery常用知识总结
jQuery常用知识总结 简介 选择器 属性操作 jQuery() each event事件 jQuery扩展 一.简介 What is jQuery jQuery is fast small and ...
- Python数据分析与挖掘所需的Pandas常用知识
Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...
- Oracle常用知识小总结
永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! Oracle常用知识小总结 1. 创建自增主键 对于习惯了SQL SERVER的图形化界面操作的SQLer,很长一段时间不用oracle ...
- php常用知识集锦
php常用知识集锦 很多位置都有写好的代码,自己做项目的时候可以直接拿来用,而不用自己写,比如现在看到的菜鸟教程. 1.判断是否为空 empty($_POST["name"]) 2 ...
随机推荐
- Android代码优化——使用Android lint工具
作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常 ...
- repo: 创建local manifest以及如何添加app到CM/Android build系统中
The local manifest Creating a local manifest allows you to customize the list of repositories on you ...
- 基于html5页面滚动背景图片动画效果
基于html5页面滚动背景图片动画效果是一款带索引按钮的页面滚动动画特效代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="fullpage&q ...
- Linux下查看tcp连接数及状态
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ TIME_WAIT 8947FIN_WAIT1 15FIN_W ...
- Javascript起源...
Javascript的设计思路是这样的: (1)借鉴C语言的基本语法: (2)借鉴Java语言的数据类型和内存管理: (3)借鉴Scheme语言,将函数提升到"第一等公民"(fir ...
- JS魔法堂:通过marquee标签实现信息滚动效果
一.前言 有限的空间展现无限的内容,这是滚动最常用到的地方.根据信息滚动效果我们可以有很多的实现方式,但HTML自带的 marquee标签 是其中一个较简单的实现方式.下面记录一下,供日后查阅. ...
- C#类的一些概念
一.概念 1.类的作用是来模拟现实对象的,一个现实对象可以从两个地方进行描述:特征和行为. 2.类不是你凭空想象的,它只是描述现实对象具体的特征和行为的. 3我们写类只需要写我们所需要的. 4.类是提 ...
- LNK1179 无效或损坏的文件: 重复的 COMDAT“_IID_IDispatchEx”
fatal error LNK1179: invalid or corrupt file: duplicate comdat "XXX" LNK1179 无效或损坏的文件: 重复 ...
- 在C#后端处理一些结果然传给前端Javascript或是jQuery
在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...
- 【jQuery基础学习】01 jQuery选择器
关于CSS选择器 jQuery选择器涉及到CSS,CSS技术使得网页的结构与表现样式完全分离. 同样CSS也需要找到某个网页的结构才能改变其样式,这就是CSS选择器. 常用的CSS选择器如下: 标签选 ...