Github的基本功能
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:Fadeoc Khaos
链接:http://www.zhihu.com/question/20070065/answer/30521531
来源:知乎
Github的基本功能:
- Repository:你和我一起做“知乎首页”,“知乎首页”就是Repository,即项目或者”未来武器T2级425mm磁轨炮“之类,怎么叫随你,你只需知道Repository是个放项目的地方就行。有时候会出现Repositories,是多个Repository的意思。
- Fork:我们把制作“知乎首页“的工作分开,你负责美工,我负责前端开发,但我们还需要数据服务器高手。你找来了一位php大牛,这位大牛很快搞定了服务器端,闲来无事,就看了看我的前端代码,一看,“我靠,这怎么一点也不语义化呢?全是尼玛的清一色的<div>啊,将来做交互js还搞不搞dom了……”于是这大牛在Repository中找到了我写的“zhi.html”,Fork了一份,也就是授权拷贝。
- Branch:Fork之后,在大牛的Github上出现了一个同样叫做“知乎首页”的Repository,但是这个Repository是复制品,只归他,这就是他的Branch,也就是分支。
- Pull Request:大牛做完了一份全新的高端zhi.html,点了Pull Request,也就是推送请求。我接受了,看了一眼,顿时惊讶爆表,“中国足球——高,实在是高!”
- 现在你懂了,Github的结构是Repository-Branch-(获取/推送)文件。你又发现Github可以比较两个文件的异同,新增的部分用绿色标记,删除的部分用红色标记。Pull Request还可以控制,甚至可以合并Branch,这就是团队合作利器啊,真乃高大上也,手痒了吧?心动了吧?
- 注册Github并登录。
- 下载客户端并登录,客户端负责你硬盘上的数据与Github服务器数据的交互,然后设置存储目录。为了表现你的才华,你决定将此目录命名为“诸神之爹”。
- 既然有这么多的国外开源项目,我们国内哪有不自主的道理。必须要实践一下这个顶好赞的Fork功能。现在你来到了Fadeoc/frontend · GitHub,你看到了这是用户Fadeoc的一个叫做“frontend”的Repository,你笑了,这家伙学习前端知识不过十天,代码一片渣,竟然有的代码里只写了“土豆”和“二狗子”几个汉字。你点了一下右上角的Fork,然后clone in desktop,保存到“诸神之爹”,哇!文件已经在你电脑里了,完全免费耶!+10086!
- 一个小时后,你对Fadeoc的渣代码颇有心得,决定帮他改良,不然他这项目就完了。你改好之后,Pull Request,这丫的竟然说你的代码太渣,不吸收。贱人!老子自己做,抢你市场份额!
- 你点了右上角自己头像后面的+号,选择了第一个New repository,即新建repository,并且起了个名字,叫做“完爆Fadeoc”,然后点击绿色按钮set up in desktop,弹出保存框,选择“诸神之爹”。于是“诸神之爹”下出现了一个“完爆Fadeoc”的文件夹。
- 你自己写了一份“神爹首页.html”,把它放在了“完爆Fadeoc”文件夹下。
- 你打开了客户端,看到客户端界面中master Branch(主人分支,这名字太云端了)出现了一个Uncommitted changes,即未提交的变动,也就是你刚写的“神爹首页.html”。你点开show按钮,在summary(摘要)的部分添上“滚你丫的Fadeoc”,在Description(细节描述)的位置是没必要写的,但你还是决定添上“爆你菊花”四个大字。然后选择“Commit to 你的用户名”。
- 为了把这个提交上传到Github上让贱人Fadeoc看到,你点击了客户端右上角的后面显示了一个“+1”的Sync,即同步,过了几秒,Sync前的两个曲线箭头停止了转动,同步成功了,“+1”消失,表示一个文件成功上传。
- 你来到Github,刷新自己的个人页,“完爆Fadeoc”这个Repository出现在页面上,点开它,在里面你看到了”神爹首页.html”。
- 为了让这个项目的初始目的更加浅显易懂,你决定添加一个Readme.txt,虽然从前下载的N多软件的文件夹里总是有一个Readme.txt,你一个都没打开过。但在圈里混,就得混的人模狗样的,于是你在“完爆Fadeoc”下新建了一个Readme.txt,里面写上,“Fadeoc,没错,说的就是你,看我口型,你个贱人!”
- 同样使用客户端commit,然后sync,过了几秒,刷新github,你看到又多出了一个readme.txt。而且在下面又多出一个文字显示框,里面显示的就是readme.txt里面的内容“Fadeoc,没错,说的就是你,看我口型,你个贱人!”,避免了Fadeoc这个贱人不想打开readme.txt也就看不到你亲切问候的尴尬局面。Github真是贴心呐。
- 你复制了这个Repository的地址,Email给了Fadeoc。
- Fadeoc不是那么容易被打败的,于是他Fork了你的Repository,修改了readme.txt,然后pull request,你看到fadeoc新生成的branch下的readme.txt被改成了“你才是贱人”。你拒绝了合并请求。
- Fadeoc再次pull request,readme.txt改成了“敢不做恶吗?”
- 你有点烦了,这他妈的怎么才能不让他pull request,将来大项目N多陌生人菜鸟pull request烦不烦,就不能不开源,转私有吗?你终于找到了Github的升级服务,你笑了,将这个Repository从Public转成了Private。Fadeoc肯定会继续pull request,得不到你回应的他只会渐渐被复仇的怒火烧尽理智,可是,谁在乎呢?
Github还有更多细节功能,在使用过程中,你会慢慢发现,慢慢学会。但是不管如何,现在你会使用Github的基本功能了。
Github的基本功能的更多相关文章
- Github的基本功能:
作者:Fadeoc Khaos链接:http://www.zhihu.com/question/20070065/answer/30521531来源:知乎著作权归作者所有,转载请联系作者获得授权. G ...
- 微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能
版本内容 1.修正了缺少对Event.View的支持 2.增加了用户UnionID 3.新增微信小店功能 4.多客服功能 5.单元测试 什么是UnionID 我们知道,每个用户针对一个微信公众账号都有 ...
- GitHub上线Trending功能,帮你轻松找到有潜力的开源项目
转自:http://www.csdn.net/article/2013-08-14/2816574-Github-Trending-Open-Source-Project Github开源项目 摘要: ...
- 以V8中js源码为例了解GitHub查看代码功能
GitHub作为开源仓库,许多开源项目仓库这里,当然不乏十分优秀的,比如Node.V8,我一直比较好奇js源码,像java的话,因为环境是JDK,我们结合IDE很容易就能跳转到其源码内部去查看实现,但 ...
- Github不为人知的一个功能,一个小彩蛋
Github 是一个基于Git的代码托管平台,相信很多人都用过,当然这些"很多人"中大部分都是程序员.当你在Github上创建仓库时(Github称项目为仓库),你会给这个仓库添加 ...
- Github 高级搜索功能
参考文章链接:https://zhuanlan.zhihu.com/p/55294261 GitHub 提供高级搜索方式. 一.明确搜索仓库标题.仓库描述.README 1.只想查找仓库名称包含XX的 ...
- 转自知乎:GitHub基本功能
作者:Fadeoc Khaos 链接:https://www.zhihu.com/question/20070065 来源:知乎 著作权归作者所有Github的基本功能: Repository:你和我 ...
- github page+jekyll搭博客初体验
div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 10px; padding ...
- Github+Jekyll —— 创建个人免费博客(一)从零开始
摘要: 本文中我将介绍一下如何在github上搭建个人Blog(博客),也顺便让我们掌握一下github Pages功能,另外还涉及到Jekyll技术. ======================= ...
随机推荐
- django的models字段介绍
#增加数据库数据方法#方法1CalcData.objects.create(var1 ='21',var2='22')#方法2obj =CalcData(var1 ='21',var2='22')jo ...
- iOS常用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)
1. 简单工厂模式 如何理解简单工厂,工厂方法, 抽象工厂三种设计模式? 简单工厂方法包含:父类拥有共同基础接口,具体子类实现子类特殊功能,工厂类根据参数区分创建不同子类实例.该场景对应的UML图如下 ...
- Java:基本语法
Java语言是由类和对象组成的,其对象和类又是由变量和方法组成,而方法,又包含了语句和表达式. 1. 变量 Java语言提供了两种变量:成员变量和局部变量 成员变量:是在方法体外的类中声明和定义的,可 ...
- Macbook sublime 安装markdown插件
Sublime Text为3 版本 安装sublime text 插件,需要“***”,不会弄的,就可以移步了. 首先按 command + shift + p 调出安装插件的界面,输入“instal ...
- 3、kubernetes应用快速入门190625
一.kubernetes应用入门 1.kubectl命令 Basic Commands create Create a resource from a file or from stdin. expo ...
- Linux服务之 Nginx安装
安装包下载: 链接:https://pan.baidu.com/s/1yna9nvT_9iYw4_0uVQRgFw 提取码:nurm yum -y install gcc automake autoc ...
- 修改Gradle本地仓库
问题描述 Gradle 默认的本地仓库为 C:\Users\用户名\.gradle,不想让其一直下载东西占用 C 盘资源. 解决方法 新建环境变量名:GRADLE_USER_HOME,变量值为:D:\ ...
- 转 rman-08120 以及查询隐含参数
rman-08120 We need RMAN to automatically purge archivelogs from the FRA once they are applied to the ...
- POJ 1556 E - The Doors
题意:给定n堵墙,现在要你从(0,5)走去(10,5)的最短距离 思路:刚开始还想模拟,就是从(0,5)走,每次x向右一格,然后判断有没和线段相交就可以.但是它的们有可能是小数形式给出的,这样就GG了 ...
- RabbitMQ使用教程(四)如何通过持久化保证消息99.99%不丢失?
1. 前情回顾 RabbitMQ使用教程(一)RabbitMQ环境安装配置及Hello World示例 RabbitMQ使用教程(二)RabbitMQ用户管理,角色管理及权限设置 RabbitMQ使用 ...