初识GitHub

什么是 Github ?

  1. 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。

  2. 如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。

  3. GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

  4. 在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。

  5. GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。

  6. 通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
    在GitHub,用户可以十分轻易地找到海量的开源代码。

    简单来说,Git 是一个管理你的「代码的历史记录」的工具。

注册安装

去官网注册一个账号(https://github.com/
点击sign up注册,sign in登录
初识GitHub

step1:创建新项目

我们多人在不同的城市要远程共同写一个,要有一个漂亮的笔记本吧?
初识GitHub
「repositories」就是你的笔记本们。你只需知道 Repository 是个放项目的地方就行。有时候会出现 Repositories,是多个 Repository 的意思。

fork
如果你不想新建一个笔记本,看到小四之前写过一个好到炸裂的文章,想把他的直接全部偷过来,修改修改就成你自己的文章了,这应该怎么办呢?

github 还提供了一个很赞的功能叫做 fork ,你只需要点击这个神奇的按钮,就可以把他的「笔记本」变成你自己的啦!任意修改都可以哦~
初识GitHub

step2:把「笔记本」克隆到本地

「笔记本」在云端,你要把它摘下来放到自己的电脑上写小说才方便呀,在这里我们叫「clone」是不是很形象?步骤如图:
初识GitHub
或者是直接去我们的客户端或者是直接去我们的客户端
初识GitHub

step3:可以开始写作啦!

你的笔记本里已经自动有一个文档了,这个时候让我们回到网页版[微笑脸]
你只需要在 web 端点开这个README.md可以开始在里面写你的小说了。
初识GitHub
或者直接点开刚刚 clone 到电脑上的文件夹直接在里面写。
ps:需要注意的是,文本支持 markdown 格式,可以先参考这个献给写作者的 Markdown 新手指南。

step4:上传你写的小说

在本地写完之后你要上传到云端让我和小四都能看见你写出什么幺蛾子了吧?
回到客户端,你发现有变化!!!
初识GitHub
没错,在你头像旁边给你这次提交内容起一个名字,以后如果再次寻找的时候会很方便。然后点下面的 Commit to master,还有右上角的 Sync 就好啦!

step5:回退到之前的版本

夜深人静的时候,我趁着你们都在睡觉把小说的结局偷偷地改成女主死掉了!
你醒来觉得我这结局改的也太悲伤了,完全不能接受!结局必须要和之前那样王子公主幸福的生活在一起的 happy ending!
问题又来了,怎么退回到我修改结局之前的 happy ending?

还是刚刚那个客户端,选择History 然后点击小齿轮,选择潇洒地点 roll back to this commit!
你又回到happy ending的状态啦!!
初识GitHub

step6:

小四写了一章华丽无比的番外,你要更新本地的小说和他写的保持一致怎么办?
git pull
初识GitHub

除了写代码你还可以用 github 做什么?

1、写书
和 33 一起写小说的例子,还记得吧?几个人你一章我一章共同修改一本书,或是几个出版社的编辑对新书进行校对,利用这个神器就可以随时看到哪里出现了问题和更改。如果想自己写书的话 gitbook 也是不错的选择(又是一个坑。。)

2、写文档神器
身为科研狗、产品狗、射鸡湿的你,是不是经常写文档?一个成熟的文档可能会有好几个版本,需要不断地迭代,然后不断提交给老板看哪里需要修改。在不同版本间自如切换就要用到git branch和git rebase了。
想想看,用 git 的分支管理不比拷贝粘贴更方便吗?

3、健身
有个哥们为了激励自己健身把每日计划都放上去了,还可以邀请其他人一起来相互监督!(我才不会说我自己也开了一个呢哈哈哈)

4、用GitHub搭建博客、个人网站或者公司官网
一个有自己域名的独立博客,是不是很帅?!

GitHub本身提供免费的托管服务,又提供了贴心的 Pages 功能,可以绑定你自己的域名,免费、高效、不限流量,做一个个人页面绰绰有余。

5、用GitHub协作翻译
苹果官方发布的各种官方手册,比如最近开源的 Swiftnumbbbbb/the-swift-programming-language-in-chinese · GitHub 就是国内一个自发组织起来的团队,30多个人用9天时间即将翻译和校对工作全部完成,他们每人都还有自己的事情,上班、上线、创业,这么大的工作量在以往简直是不可能完成的任务!

6、项目管理
GitHub最初是为了开发的管理而生,当然也就具备了项目管理的潜质,特别是与开发密切联系的项目中,它的优势尽显。比如这篇文章介绍了如何使用GitHub结合 Trello 等其它工具进行项目管理:使用GitHub进行团队合作。当然,GitHub还是很偏重开发的管理,一般的项目管理还是适合使用 wortile 之类的产品。

7、*文件?
之前看到一个知乎回答说:日本*把宪法放上去了,德国*也做过类似的事:German Federal Law Now on GitHub。除了德日之外,英美在 GitHub 上也有很多公众服务:英国*多达 10 页的项目目录:Government Digital Service · GitHub 其中很多是*项目的源代码或者设计原则之类。

8、科研项目及数据
较早的arXiv、PLoS之外,较有气象的可以推荐mendeley、开放期刊目录
教育方面:
OpenStudy:一个社会性学习网络,通过互助来更好地学习,主题涉及到计算机、数学、写作等。
openhatch: 通过练习、任务等帮助新手更好地进入开源社区

9、个人简历
GitHub上的代码无法造假,也容易通过你关注的项目来了解你的知识面的宽度与深度。现在越来越多知名公司活跃在GitHub,发布开源库并招募各类人才,例如:Facebook、Twitter、Yahoo …

开始有了第三方网站提供基于GitHub的人才招聘服务,例如:

GitHire:通过它,可以找出你所在地区的程序员。
Gitalytics.com:通过它,能评估某位程序员在GitHub、LinkedIn、*、hackernews等多个网站的影响力。
甚至专门有一个项目就是自动根据你的 GtiHub 公开项目创建个人简历:
我们可以使用 Git 以及 GitHub 做哪些事情? - Kane Blueriver 的回答

10、设计资源库(重点来了!!!)
做 ppt 不知道到哪里去找高质量美图?
最近半年初入设计圈,收集了不少 bookmark 想在年底来一个总结。 于是自己创建了这个Design- Resource List 项目,旨在让更多的设计师找资源变得有章可循。

先更新一部分,大概还有200多个还没放过来。。(吐血) 所以,欢迎大家也推荐自己收藏的资源,加入这个项目并一起持续更新么么哒 :)
timmy3131/design-resource · GitHub

11、Explore · GitHub 更多好玩的内容等你自己发现哦
你在 GitHub 上看到过的最有意思的项目是什么? - 调查类问题