如何更好地理解和使用Github
只知道几乎在顶部看到一对Github用通俗易懂的解释:
你或许不懂怎样造一辆凯迪拉克,但你能够驾驶凯迪拉克。
你或许不懂Evernote是用什么技术做出来的,但你也能够使用Evernote。
你或许不懂Git,但你能够使用Github。
作为想要1小时学会大体使用Github的刚刚学习前端10天的技术盲。我是这样做的:
了解Github的基本功能:也就是为什么用Github。
- Repository:你和我一起做“知乎首页”,“知乎首页”就是Repository,即项目或者”未来武器T2级425mm磁轨炮“之类,怎么叫随你。你仅仅需知道Repository是个放项目的地方即可。有时候会出现Repositories,是多个Repository的意思。
- Folk:我们把制作“知乎首页“的工作分开,你负责美工,我负责前端开发,但我们还须要数据server高手。
你找来了一位php大牛。这位大牛非常快搞定了server端,闲来无事。就看了看我的前端代码。一看。“我靠,这怎么一点也不语义化呢?全是尼玛的清一色的<div>啊,将来做交互js还搞不搞dom了……”于是这大牛在Repository中找到了我写的“zhi.html”,Folk了一份,也就是授权拷贝。
- Branch:Fork之后,在大牛的Github上出现了一个相同叫做“知乎首页”的Repository。可是这个Repository是复制品,仅仅归他,这就是他的Branch,也就是分支。
- Pull Request:大牛做完了一份全新的高端zhi.html,点了Pull Request,也就是推送请求。
我接受了,看了一眼。顿时吃惊爆表,“中国足球——高,实在是高!
”
- 如今你懂了,Github的结构是Repository-Branch-(获取/推送)文件。你又发现Github能够比較两个文件的异同。新增的部分用绿色标记,删除的部分用红色标记。Pull Request还能够控制,甚至能够合并Branch。这就是团队合作利器啊,真乃高大上也。手痒了吧?心动了吧?
- 请注冊Github并登录。
- 下载client并登录。client负责你硬盘上的数据与Githubserver数据的交互,然后设置存储文件夹。为了表现你的才华。你决定将此文件夹命名为“诸神之爹”。
- 既然有这么多的国外开源项目。我们国内哪有不自主的道理。必需要实践一下这个顶好赞的Folk功能。
如今你来到了Fadeoc/frontend
· GitHub,你看到了这是用户Fadeoc的一个叫做“frontend”的Repository。你笑了,这家伙学习前端知识只是十天。代码一片渣,居然有的代码里仅仅写了“土豆”和“二狗子”几个汉字。你点了一下右上角的Folk。然后clone in desktop,保存到“诸神之爹”,哇!文件已经在你电脑里了,全然免费耶!
+10086。
- 一个小时后,你对Fadeoc的渣代码颇有心得,决定帮他改良。不然他这项目就完了。
你改好之后。Pull Request。这丫的居然说你的代码太渣,不吸收。贱人!老子自己做,抢你市场份额。
- 你点了右上角自己头像后面的+号,选择了第一个New repository,即新建repository,而且起了个名字。叫做“完爆Fadeoc”,然后点击绿色buttonset up in desktop,弹出保存框,选择“诸神之爹”。于是“诸神之爹”下出现了一个“完爆Fadeoc”的目录。
- 你自己写了一份“神爹首页.html”。把它放在了“完爆Fadeoc”目录下。
- 你打开了client,看到client界面中master Branch(主人分支。这名字太云端了)出现了一个Uncommitted changes,即未提交的变动。也就是你刚写的“神爹首页.html”。
你点开showbutton,在summary(摘要)的部分添上“滚你丫的Fadeoc”,在Description(细节描写叙述)的位置是不是必需写的,但你还是决定添上“爆你菊花”四个大字。
然后选择“Commit
to 你的username”。 - 为了把这个提交上传到Github上让贱人Fadeoc看到。你点击了client右上角的后面显示了一个“+1”的Sync,即同步,过了几秒,Sync前的两个曲线箭头停止了转动。同步成功了。“+1”消失。表示一个文件成功上传。
- 你来到Github,刷新自己的个人页。“完爆Fadeoc”这个Repository出如今页面上,点开它。在里面你看到了”神爹首页.html”。
- 为了让这个项目的初始目的更加浅显易懂,你决定加入一个Readme.txt,尽管从前下载的N多软件的目录里总是有一个Readme.txt,你一个都没打开过。
但在圈里混,就得混的人模狗样的。于是你在“完爆Fadeoc”下新建了一个Readme.txt,里面写上,“Fadeoc。没错。说的就是你,看我口型,你个贱人。”
- 相同使用clientcommit。然后sync,过了几秒,刷新github。你看到又多出了一个readme.txt。并且在以下又多出一个文字显示框。里面显示的就是readme.txt里面的内容“Fadeoc。没错,说的就是你。看我口型,你个贱人!
”,避免了Fadeoc这个贱人不想打开readme.txt也就看不到你亲切问候的尴尬局面。Github真是贴心呐。
- 你复制了这个Repository的地址,Email给了Fadeoc。
- Fadeoc不是那么easy被打败的,于是他Folk了你的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的更多相关文章
- 通过Ruby On Rails 框架来更好的理解MVC框架
通过Ruby On Rails 框架来更好的理解MVC框架 1.背景 因为我在学习软件工程课程的时候,对于 MVC 框架理解不太深入,只是在理论层面上掌握,但是不知道如何在开发中使用 MVC ...
- dimensionality reduction动机---visualization(将数据可视化帮助我们更好地理解数据)
如果我们能更好地理解我们的数据,这样会对我们开发高效的机器学习算法有作用,将数据可视化(将数据画出来能更好地理解数据)出来将会对我们理解我们的数据起到很大的帮助. 高维数据如何进行显示 GDP: gr ...
- 嗯 第二道线段树题目 对左右节点和下标有了更深的理解 hdu1556
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- 帮助你更好的理解Spring循环依赖
网上关于Spring循环依赖的博客太多了,有很多都分析的很深入,写的很用心,甚至还画了时序图.流程图帮助读者理解,我看了后,感觉自己是懂了,但是闭上眼睛,总觉得还没有完全理解,总觉得还有一两个坎过不去 ...
- 技术干货 | 基于MindSpore更好的理解Focal Loss
[本期推荐专题]物联网从业人员必读:华为云专家为你详细解读LiteOS各模块开发及其实现原理. 摘要:Focal Loss的两个性质算是核心,其实就是用一个合适的函数去度量难分类和易分类样本对总的损失 ...
- 【转】七个例子帮你更好地理解 CPU 缓存
我的大多数读者都知道缓存是一种快速.小型.存储最近已访问的内存的地方.这个描述相当准确,但是深入处理器缓存如何工作的"枯燥"细节,会对尝试理解程序性能有很大帮助. 在这篇博文中,我 ...
- 使用IIS建立自己的网站、使用C#编写IIS模拟器,更好的理解Client和Server的relation
如何在IIS服务器上搭建自己的网站呢,今天带着这问题进行简单的实践一下,并且准备模拟一下IIS服务器工作方式,把这个工作方式搞清楚有利于发展. 1.首先应该进入控制面板=>程序=>添加或删 ...
- C#委托的定义 以及使用方式详解,更简单的理解委托。
委托的声明及定义: 委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得 ...
- 重温Java泛型,带你更深入地理解它,更好的使用它!
1. 引言 jdk5.0中引入了Java泛型,目的是减少错误,并在类型上添加额外的抽象层. 本文将简要介绍Java中的泛型.泛型背后的目标以及如何使用泛型来提高代码的质量. 2. 为什么要用泛型? 设 ...
随机推荐
- ASPF简介
ASPF是一种应用层状态检测技术,它通过与NAT和ALG等技术的组合应用,实现对应用层协议状态的处理和检测. 1.1 产生背景 随着计算机技术和网络技术的普及,网络安全问题也越来越得到关注.防火墙作 ...
- Swift的属性,方法,下标脚本以及继承
从这篇章节起,Swift编程语言指南大部分的重要内容在于概念,代码并非太多.理解Swift的面向对象理念,语法以及类结构,构造析构过程对于非常好的应用Swift语言将会有比較大的帮助. 属性 存储属性 ...
- 工厂方法模式(factory method pattern)
工厂方法模式相对于简单工厂模式的长处是为了更好的拓展,当假设再新加一种产品,对于简单工厂模式来说须要改动核心的工厂类,但对于工厂方法模式则不须要,在工厂方法模式中核心的工厂类不再负责创建全部产品的创建 ...
- oracle 11g impdp时 报ORA-12899(转)
源库ZHS16BGK,汉字在数据库存放的时候占用两个字节 目标库UTF8,汉字在数据库里存放的时候占用三个字节 由于字符集不同,导致现在数据库impdp的时候有些表的字段长度不够,出现ORA-1289 ...
- 开源Office Word——DocX
1.前言 请阅读前请看以下这位大神的文章 http://www.cnblogs.com/asxinyu/archive/2013/02/22/2921861.html 另附两个附件 1.DocX.DL ...
- hdu - 4975 - A simple Gaussian elimination problem.(最大流量)
意甲冠军:要在N好M行和列以及列的数字矩阵和,每个元件的尺寸不超过9,询问是否有这样的矩阵,是独一无二的N(1 ≤ N ≤ 500) , M(1 ≤ M ≤ 500). 主题链接:http://acm ...
- EJB通过ANT提高EJB应用程序的开发效率、无状态发展本地接口bean、开发状态bean
该jboss集成到eclipse 关掉Jboss控制台新闻Ctrl+c,在MyEclipse→Servers→Jboss可配置JBoss. 通过ANT提高EJB应用的开发效率 在HelloWorld ...
- 基于Office 365 无代码工作流分析-需求基本分析!
客户需求分析: 嘉昊信息是一家IT创业型公司,因为公司初创,有较多的招聘员工的需求,公司近期购买了Office 365,因为招聘工作繁琐,HR人员须要做非常多反复繁琐工作,HR主管提议开发一个招 ...
- Gradle第二步骤来创建学习Task
请下载本系列中的以下文章Github演示示例代码: git clone https://github.com/davenkin/gradle-learning.git Gradle的Proje ...
- SharePoint 2010 BCS - 概要
博客地址 http://blog.csdn.net/foxdave SharePoint 2010首次引入了BCS的概念 - Business Connectivity Service.即业务连接服务 ...