GitHub【笔记】
GitHub创办于2008年,被市场研究公司Forrester称作“开发者的Facebook”,有逾1000万名注册用户在协作开发2500万个软件项目。个人开发者利用GitHub存储、编写代码,并与其他开发者进行协作;企业和政府机构则利用它托管和管理软件项目。
GitHub对不公开的软件项目收费。机构可以通过付费在内部托管GitHub,方便内部人员分享代码。GitHub其他服务则是免费的。
基本简介:
作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
是的,正是这么计划的。通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
在GitHub,用户可以十分轻易地找到海量的开源代码。
版本信息:
2012年12月24日,GitLab 4.0 RC2 发布,开源的 Github克隆。
控制系统:
GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。
配置管理:
GitHub上已自动配置的Mac笔记本电脑,一个工具,可以转换设置Linux或Windows机器。
BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑软件开发或其他类型的工作,正在使用他们的开发人员,律师,设计师,付货人,等。想法是准备系统以自动方式和作为无差错尽可能用最少的干预工作。根据GitHub上,与一个新的开发机器上,他的Mac系统成立,并准备在30分钟内提交代码。
BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,Python和Ruby开发中,节点,JS,nginx的,Skype公司,甚至MINECRAFT。虽然机器上配备了一个预配置,每个用户都可以调整它的配置应有的作用。
GitHub 上都有哪些值得关注学习的 iOS 开源项目:
1. ReactiveCocoa:
GitHub自家的函数式响应式编程范式的Objective-C实现,名字听着很高大上,学习曲线确实也比较陡,但是绝对会改变你对iOS编程的认知,首推之。
2. Mantle:
又是GitHub自家的产物,轻量级建模的首选,也可以很好的配合CoreData工作。
3. AFNetworking:
iOS7之前,苹果自带的网络库有多难用!matt大神的AFNetworking绝对可以解放你。使用苹果的NSURLRequest及iOS7的NSURLSession,清晰的架构,足够的文档,可以认为是第三方开源库的楷模了。
4. BlocksKit:
Functional Programming,Objective-C中的block,但想用好block也不是很容易,如果对block有爱,就请使用这个库吧。
5. Nimbus:
第一次关注nimbus是因为Facebook的Three20开源库。可惜Three20库已死,主要作者跳出来,写了nimbus。
6. pop:
facebook出品的paper,动画效果太好了,赶超apple的原生app一大截。pop就是paper的动画库!
7. GPUImage:
iOS7出来时,很多好看的效果,其实都是对图像的各种处理(比如模糊效果)。图像处理看来以后也是iOS开发的必备技能之一了。而GPUImage,就是能快速处理各种图像效果的利器!