著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者: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,这就是团队合作利器啊,真乃高大上也,手痒了吧?心动了吧?
  1. 注册Github并登录。
  2. 下载客户端并登录,客户端负责你硬盘上的数据与Github服务器数据的交互,然后设置存储目录。为了表现你的才华,你决定将此目录命名为“诸神之爹”。
  3. 既然有这么多的国外开源项目,我们国内哪有不自主的道理。必须要实践一下这个顶好赞的Fork功能。现在你来到了Fadeoc/frontend · GitHub,你看到了这是用户Fadeoc的一个叫做“frontend”的Repository,你笑了,这家伙学习前端知识不过十天,代码一片渣,竟然有的代码里只写了“土豆”和“二狗子”几个汉字。你点了一下右上角的Fork,然后clone in desktop,保存到“诸神之爹”,哇!文件已经在你电脑里了,完全免费耶!+10086!
  4. 一个小时后,你对Fadeoc的渣代码颇有心得,决定帮他改良,不然他这项目就完了。你改好之后,Pull Request,这丫的竟然说你的代码太渣,不吸收。贱人!老子自己做,抢你市场份额!
  5. 你点了右上角自己头像后面的+号,选择了第一个New repository,即新建repository,并且起了个名字,叫做“完爆Fadeoc”,然后点击绿色按钮set up in desktop,弹出保存框,选择“诸神之爹”。于是“诸神之爹”下出现了一个“完爆Fadeoc”的文件夹。
  6. 你自己写了一份“神爹首页.html”,把它放在了“完爆Fadeoc”文件夹下。
  7. 你打开了客户端,看到客户端界面中master Branch(主人分支,这名字太云端了)出现了一个Uncommitted changes,即未提交的变动,也就是你刚写的“神爹首页.html”。你点开show按钮,在summary(摘要)的部分添上“滚你丫的Fadeoc”,在Description(细节描述)的位置是没必要写的,但你还是决定添上“爆你菊花”四个大字。然后选择“Commit to 你的用户名”。
  8. 为了把这个提交上传到Github上让贱人Fadeoc看到,你点击了客户端右上角的后面显示了一个“+1”的Sync,即同步,过了几秒,Sync前的两个曲线箭头停止了转动,同步成功了,“+1”消失,表示一个文件成功上传。
  9. 你来到Github,刷新自己的个人页,“完爆Fadeoc”这个Repository出现在页面上,点开它,在里面你看到了”神爹首页.html”。
  10. 为了让这个项目的初始目的更加浅显易懂,你决定添加一个Readme.txt,虽然从前下载的N多软件的文件夹里总是有一个Readme.txt,你一个都没打开过。但在圈里混,就得混的人模狗样的,于是你在“完爆Fadeoc”下新建了一个Readme.txt,里面写上,“Fadeoc,没错,说的就是你,看我口型,你个贱人!”
  11. 同样使用客户端commit,然后sync,过了几秒,刷新github,你看到又多出了一个readme.txt。而且在下面又多出一个文字显示框,里面显示的就是readme.txt里面的内容“Fadeoc,没错,说的就是你,看我口型,你个贱人!”,避免了Fadeoc这个贱人不想打开readme.txt也就看不到你亲切问候的尴尬局面。Github真是贴心呐。
  12. 你复制了这个Repository的地址,Email给了Fadeoc。
  13. Fadeoc不是那么容易被打败的,于是他Fork了你的Repository,修改了readme.txt,然后pull request,你看到fadeoc新生成的branch下的readme.txt被改成了“你才是贱人”。你拒绝了合并请求。
  14. Fadeoc再次pull request,readme.txt改成了“敢不做恶吗?”
  15. 你有点烦了,这他妈的怎么才能不让他pull request,将来大项目N多陌生人菜鸟pull request烦不烦,就不能不开源,转私有吗?你终于找到了Github的升级服务,你笑了,将这个Repository从Public转成了Private。Fadeoc肯定会继续pull request,得不到你回应的他只会渐渐被复仇的怒火烧尽理智,可是,谁在乎呢?

Github还有更多细节功能,在使用过程中,你会慢慢发现,慢慢学会。但是不管如何,现在你会使用Github的基本功能了。

Github的基本功能的更多相关文章

  1. Github的基本功能:

    作者:Fadeoc Khaos链接:http://www.zhihu.com/question/20070065/answer/30521531来源:知乎著作权归作者所有,转载请联系作者获得授权. G ...

  2. 微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能

    版本内容 1.修正了缺少对Event.View的支持 2.增加了用户UnionID 3.新增微信小店功能 4.多客服功能 5.单元测试 什么是UnionID 我们知道,每个用户针对一个微信公众账号都有 ...

  3. GitHub上线Trending功能,帮你轻松找到有潜力的开源项目

    转自:http://www.csdn.net/article/2013-08-14/2816574-Github-Trending-Open-Source-Project Github开源项目 摘要: ...

  4. 以V8中js源码为例了解GitHub查看代码功能

    GitHub作为开源仓库,许多开源项目仓库这里,当然不乏十分优秀的,比如Node.V8,我一直比较好奇js源码,像java的话,因为环境是JDK,我们结合IDE很容易就能跳转到其源码内部去查看实现,但 ...

  5. Github不为人知的一个功能,一个小彩蛋

    Github 是一个基于Git的代码托管平台,相信很多人都用过,当然这些"很多人"中大部分都是程序员.当你在Github上创建仓库时(Github称项目为仓库),你会给这个仓库添加 ...

  6. Github 高级搜索功能

    参考文章链接:https://zhuanlan.zhihu.com/p/55294261 GitHub 提供高级搜索方式. 一.明确搜索仓库标题.仓库描述.README 1.只想查找仓库名称包含XX的 ...

  7. 转自知乎:GitHub基本功能

    作者:Fadeoc Khaos 链接:https://www.zhihu.com/question/20070065 来源:知乎 著作权归作者所有Github的基本功能: Repository:你和我 ...

  8. github page+jekyll搭博客初体验

    div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 10px; padding ...

  9. Github+Jekyll —— 创建个人免费博客(一)从零开始

    摘要: 本文中我将介绍一下如何在github上搭建个人Blog(博客),也顺便让我们掌握一下github Pages功能,另外还涉及到Jekyll技术. ======================= ...

随机推荐

  1. HDFS高可用实现细节

    NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode ...

  2. Testlink安装后配置修改

    1.1. config.inc.php 1.1.1. 日志路径配置 /** *  @var string Path to store logs - *for security reasons (see ...

  3. map系统学习

    映射map又称字典,表,或者查找表,其元素是由key和value两个分量组成的对偶(key,value). key是键,value是与键key相关联的映射值,这样的元素又称“关联”.key和value ...

  4. Stars(树状数组)

    算法学习:http://www.cnblogs.com/George1994/p/7710886.html 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid ...

  5. MySQL中有关TIMESTAMP和DATETIME的对比

    TIMESTAMP和DATETIME的相同点: 1> 两者都可用来表示YYYY-MM-DD HH:MM:SS[.fraction]类型的日期. TIMESTAMP和DATETIME的不同点: 1 ...

  6. MS Chart 条状图【转】

    private void Form1_Load(object sender, EventArgs e) {            string sql1 = "select  类别,coun ...

  7. Sublime常用插件安装大全

    作为前端人员,要找一个很顺手的编辑器真的不容易,我向大家推荐的一款实用前端开发神器,不但占地小,且插件很多,很强大. 下面我向大家介绍一下它的安装及插件的使用方法. 一.安装及安装emmet插件 首先 ...

  8. UPDATE SQL 不同环境执行结果不一样

    背景:1.前台:JQUERY 提交数据 2.后台:OWIN C#  处理接收数据 3.数据库: postgresql ========================================= ...

  9. koa源码分析

    最近项目要使用koa,所以提前学习一下,顺便看了koa框架的源码. 注:源码是koa2.x koa的源码很简洁,关键代码只有4个文件,当然还包括一些依赖npm包 const Koa = require ...

  10. [Unity3D] 如何识别屏幕边缘

    出现的问题 Unity3D中长度单位是米 使用Screen.resolutions获取的屏幕信息单位是像素 也就是说,即使获取了屏幕相关信息及参数,也无法把信息转换成可在editor中使用的信息.当时 ...