github相关

来源:互联网 发布:电脑文件加密软件 编辑:程序博客网 时间:2024/04/29 08:25

转载自https://www.zhihu.com/question/20070065

首页发现话题
Git
GitHub

怎样使用 GitHub?

具体的使用方法和相关解释英语不好一点看不明白
关注者
26743
被浏览
1732186

112 个回答

作为一个文科妹子,我在看过几乎所有热门 github 教程之后依旧一头雾水,在近半年的摸索中终于明白啦~新年初,把自己纯小白的学习经验分享一下吧!

#什么是 Github ?
必须要放这张图了!!!
(图片来源GitHub 是怎样的一个存在? - Deep Reader 的回答)

Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

好吧,我相信看到这里你已经晕了,这也是我一开始看那些所谓经典教程的感受。写这些教程的人都是几年以上的程序员呀,他们往往直接就告诉你所有命令的含义或者整个体系。
专家盲点(expert blind spot)就是对一个事物知道的越多,就越发不记得“不知道这个事”的情形。

简单来说,Git 是一个管理你的「代码的历史记录」的工具。
我不是程序员为什么要学这个啊啊啊!又不要管理代码们!

别急,虽然 github 学习门槛高,一会你就知道为什么人人都应该会这个啦!

----------------------------
学习步骤

##注册安装
去官网注册一个账号(这个你应该会,恩就不放链接了)
然后,下载一个GitHub Desktop mac客户端是最方便的啦!(命令行什么的真的是会越来越晕!先别管他们!)

假设33(珊姗就是我啦)、小四和你三个人一起写一本小说(澄清一下,并没有黑任何人的意思,恩!),暂且叫做...《梦里花落爱吃土时代》
--
图(脑补)
--
(⊙v⊙)嗯!终于可以正式开始了!

#step1:创建新项目
我们三个人在不同的城市要远程共同写一本书,要有一个漂亮的笔记本吧?

「repositories」就是你的笔记本们。你只需知道 Repository 是个放项目的地方就行。有时候会出现 Repositories,是多个 Repository 的意思。

**fork**
如果你不想新建一个笔记本,看到小四之前写过一个好到炸裂的文章,想把他的直接全部偷过来,修改修改就成你自己的文章了,这应该怎么办呢?
github 还提供了一个很赞的功能叫做 fork ,你只需要点击这个神奇的按钮,就可以把他的「笔记本」变成你自己的啦!任意修改都可以哦~


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

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

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

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

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

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

-----------
好了,知道这些基本操作入门应该够了,我们来回顾一下(不要嫌弃我的画工啊喂!)

入门初期迅速得到一些正反馈对于学习一门新技能来说实在是太重要了!尤其是编程这么炫酷的事情!
所以先不要管什么复杂的 issue 呀 wiki 呀乱七八糟的操作,按照上面的一步一步来,如果遇到什么问题 google 之,一般都会解决的。

有一个段子不就是说,当你遇到问题去找最高级的工程师,他们一般都会直接 google 吗?而且自带的帮助手册也是解决问题的好办法,比如你要新建一个 branch=》Create a new branch with git and manage branches · Kunena/Kunena-Forum Wiki · GitHub

这种遇到问题先自己尝试解决的小技巧,也是我自从学编程以来最大的收获。

------------------------

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

回到文章开头,我又不是程序猿不用写代码玩这个干啥?

你有没有碰到过团队里几个人共同协作写一个文档的时候?或者说需要反复修改的东西?比如最简单的写论文,用 word 保存一个一个版本 e-mail 给 boss?下次再找上次修改了什么地方简直要死啊有木有!!!

相信你看了我的远程协作写小说的例子应该已经明白了, github 说白了就是一个「版本控制工具」。我们所谓的「回退」到历史记录,随时查看更改了什么地方,利用这个功能可以做的事情简直太多啦!

就像 github 其中一位创始人[Chris](defunkt (Chris Wanstrath) · GitHub)也详细描述了[GitHub初创的前因后果](Startup Riot 2009 Keynote 路 GitHub),他说道:

Do whatever you want.

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

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

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

4、找男票
没错,看这个项目!利用众包的形式一起罗列男友条件的 list 然后试图自己开发出一个男票233333
YixuanFranco/YourBoyfriend · GitHub
有人评论问我用这个找到男票了吗?
统一回复:
并!没!有!

5、用GitHub搭建博客、个人网站或者公司官网

一个有自己域名的独立博客,是不是很帅?!

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

Jekyll 的教程和我自己的博客会稍后放出。。(先给自己挖个坑)


6、用GitHub协作翻译

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


7、项目管理

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


7、政府文件?
之前看到一个知乎回答说:日本政府把宪法放上去了,德国政府也做过类似的事:German Federal Law Now on GitHub。除了德日之外,英美在 GitHub 上也有很多公众服务:英国政府多达 10 页的项目目录:Government Digital Service · GitHub 其中很多是政府项目的源代码或者设计原则之类。芝加哥的公开地理信息:Forking your CityNew York Open City: City of New York 路
(原谅我找不到这个回答了,欢迎补充)

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

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

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

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

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

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

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

-------------------------------------
#更多高阶教程:
如果你已经不满足于上面的基础知识了,欢迎探索更高级的玩法!
1、GitCafe / Help
2、[git简明指南](git - the simple guide)墙裂推荐!漫画的形式很形象(恩我承认比我画的好看多了)

3、在线交互学习 github 的网站Learn Git Branching 这个也很好玩~

4、[GitHub自身的官方博客](The GitHub Blog · GitHub)

5、git-flow 备忘清单

入门书籍推荐:
GitHub入门与实践 (豆瓣)比较基础
Pro Git (豆瓣) 更高级的教程,很全面!

对了对了,还有阳志平老师的两篇非常全面的旧文(这么称呼好生疏啊2333)
如何高效利用GitHub
Git与Github入门资料

------------------------
( ⊙ o ⊙ )啊!知乎居然还不支持 markdown 心好累。。

祝大家新年快乐。
ps:有朋友问我真的用 github 来写小说吗?
o(╯□╰)o只是举例子啊!方便大家理解而已...
还是会写一点点代码的(*/ω\*)

欢迎各位程序员哥哥们纠错呀,别忘了点赞赞赞!!!!!
编辑于 2016-01-02
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的基本功能了。
编辑于 2015-11-15
--
首先你要学会git, 提供一些相关的资讯,望有帮助:
  • progit这本书是必看的
    • git-scm.com/bookgit-scm.com/book/zh
    • 至少阅读:第一,第二,第三,第五,共4章,即可入门。
    • 不过这个网站被墙了,提供下镜像吧:progit-zh.epub 和 [中文].Pro Git.pdf
  • 在熟悉命令行后,也许你会需要UI,那可以选择:
    • Downloads - msysgit - Git for Windows
    • code.google.com/p/torto
    • sourcetreeapp.com/
  • 然后建议再看看 git-flow --> 一个成功的Git分支模型
    • 介绍:A successful Git branching model
    • 翻译:juvenxu.com/2010/11/28/
    • 工具:nvie/gitflow · GitHub
    • git-flow 备忘清单
  • 最后,你若需要本地搭建一个,那就用GITLAB: Self Hosted Git Management Application
  • 补充一个刚发现的互动学习git的项目:Learn Git Branching
  • 再补充一个:图解Git
  • 再补充一个:Git Magic - 前言
  • 然后剩下github的,看官方说明吧:help.github.com/

下图, 我之前对gitflow的一个翻译:
编辑于 2013-12-07
这是我在学习github的时候顺便写的教程,简单明了。


2016.9.24更新
-----------------------------------
在使用技巧中添加一条查看代码比例。

2016.8.28更新
-----------------------------------
添加GitHub for Windows使用教程(四)
主要是一些github使用技巧。


博客地址

GitHub for Windows使用教程(一)
GitHub for Windows使用教程(二)
GitHub for windows使用教程(三)
Github for windows使用教程(四)

如若有错,还望指正。

如果你还不知道什么是git,只知道github,但是还不会用,我想这个教程会帮助你。

前言

鉴于网上目前的教材都太落后,github for windows已经更新了多个版本,好多界面都发生了变化,所以来写这个教程。目的是为了帮助和我一样初学github,但是苦于找不到教程的同学,为了写最详细的教程。配备了大量的图文介绍。该教程是基于GitHub for windows (3.0.17.0)


什么是Github

说到什么事github,我们先看wikipedia的描述“GitHub是一个利用Git进行版本控制、专门用于存放软件代码与内容的共享虚拟主机服务。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

准备工作
  1. 下载github for windows,安装这里不赘述。
  2. 注册github账号
  3. 登陆到github for windows。

准备工作都完了,我们开始正式学习。^_^

创建第一个代码库
认识界面

github for windows的界面非常清爽,的确符合geek的性质,个人表示非常喜欢。 我们来建立第一个仓库,点击左上角的+号,初次建立他会有一圈圈的涟漪,非常漂亮哦。 打开之后有三个选项,AddCreateClone。 我们分别来介绍一下这三个功能。


Add功能

如果本地有工程,就可以使用Add添加


Clone功能

这个功能其实最好理解了,克隆这名字通俗易懂好理解。 如何使用Clone功能呢? 就是将在浏览器上已经创建好的项目导入到本地,换句话说就是下载到本地。


Create功能

创建一个代码库, Name填写你的仓库名字。Local path写你将要保存在本地路径。


我们主要从这个功能开始github之旅。 我们在这里填写First,来创建第一个我们自己的repoeitory。


开始使用第一个代码库
修改第一个代码库中内容

我们来找到刚刚创建的代码库在本地的位置。就是刚刚在local path的地址路径,当然如果你忘了,请右键点击First。

选择Open in Explorer。这样我们就可以转到刚刚的路径下。 我们新建一个文本文档。在里面编辑。 如下


此时的github就会变成这个样子(Changs):


你会发现此时github会出现刚刚编辑的内容。

  1. 这个是测试文本
  2. 你好
并且前面会有蓝色标识,那么这个蓝色标识是什么用呢?
其实这个蓝色标识是提示你会上改变的文本。比如我第一次只想改变 这个是测试文本并不想把你好上传。 这时我们点击一下你好的前面的蓝色标识

你会发现你好前面的蓝色标识没有了。
我们填写好SummerDescription Summer就是这次改动的总结,我们也可以理解为标题*(必填),而Description可以理解为详细概况(选填)*

我们这里只选择第一个修改对象,也就是这个是测试文本就行修改。summer我们填写为第一次修改,Description我们填写为增加了这个是测试文本的内容,之后点击Commit to master


切换到History目录下 我们会发现他改变了。 这次我们把你好进行添加。


History目录下发生了这样的改变。会在History目录下形成一天时间线,来指出每一次的修改标题和内容,同时会把修改的内容用绿色标识标出。 我们打开本地的文本,删除刚刚添加的第一行这个是测试文本


此时你就会发现github发生了变化。 此时的红色标识标识删除。我们写好Summer和Description并点击Commit to master。 这样我们就删除了第一行。同时在History目录下又多了一条时间轴。


这样我们就完成了删除。

上传与同步
上传

此时,当我们打开github网页,就会发现此时你的修改的内容并没有出现在这里。这是因为你没有进行同步,仅仅是在本地就行了修改。此时我们仅仅需要点击右上角的publish


此时你就会本地内容已经上传到网页上。


同步

当你的代码库上传后就会发现,原来的publish以及变为了Sync。 点击Sync同步代码库!




分支的使用
创建分支

我们创建第一个分支取名为new masterh,点击Create new branch创建第一个分支


我们发现此时的分支已经切换到了我们刚刚创建的分支new masterch


我们来修改new masterch分支上的内容。 我们仍旧打开FirstDemo.txt进行编辑。输入以下内容

创建的第一个分支。

打开github进行,填写SummaryDescription


之后我们点击Commit to new-masterHistory目录下,我们可以看到会有两条主线,分别是masternew-master并且在new-master的分支下又一个蓝色的实线空心圈和一个虚线空心圈

实线圈表示当前的节点,空心圈表示下一次修改时的节点。


红线标示的部分就是当前的分支


切换分支

点击红色划线部分就会出现分支的列表


我们点击master就会切换到master分支。


上传/同步分支

这个操作和同步仓库是一个操作,点击Publish/Sync上传或同步分支。

删除分支

首先要把分支切换到你要删除的分支下,如我们要删除new master,将分支切换到new master


点击右上角齿轮就会出现Delete new master 点击Delete new master就会弹出一个对话框,询问删除的内容。


第一个yes ,Delete both是将本地与网页全部删除;

第二个Delete local only仅仅是删除本地。

第三个是取消。


合并两个分支

将一个分支与master分支进行合并。 我们首先把分支切换到master下,点击Update from new-branch进行分支的合并。


此时我们查看history目录下就会


团队协作流程
认识Flow

GitHub Flow是一个轻量级的,基于分支的工作流程,支持团队和部署在那里的定期做项目。


为团队成员写入权限

在我们的队友添加一个写的权限,这样我们的队友才能很好的修改代码。 我们打开网页上的GitHub,点击settings,


之后我们找到collaborators,这里会让我们验证密码,之后就有添加合作者的选项。


这样我们就能添加我们的小伙伴了! 这样我们就添加了新的小伙伴,新的小伙伴有着同样的权限去修改和管理代码。 此时我们就会看到我的小伙伴wevan的github主页上就会出现关于我创建的First的各种通知。


创建分支

在我们创建一个叫add new function的分支。

创建一个分支 Create a branch 当你工作的一个项目,你会在任何给定的时间有一堆不同的功能或正在进行的想法 - 其中一些是蓄势待发,而另一些则不是。分支的存在是为了帮助你管理这个工作流程。When you're working on a project, you're going to have a bunch of different features or ideas in progress at any given time – some of which are ready to go, and others which are not. Branching exists to help you manage this workflow. 当您在项目中创建一个分支,你创造一个环境,在那里你可以尝试新的想法。你让一个分支的更改不会影响主分支,让你可以自由进行实验,并提交更改,在你的分支将不会被合并,直到它准备好知识安全的人所正在与合作进行审查。When you create a branch in your project, you're creating an environment where you can try out new ideas. Changes you make on a branch don't affect the master branch, so you're free to experiment and commit changes, safe in the knowledge that your branch won't be merged until it's ready to be reviewed by someone you're collaborating with. ProTip 分支在Git中是一个核心概念,整个GitHub的流量是基于它。这里只有一个规则:在任何主分支总是部署。Branching is a core concept in Git, and the entire GitHub Flow is based upon it. There's only one rule: anything in the master branch is always deployable. 正因为如此,这是非常重要的一个功能或修复工作时,你的新分支关老爷的创建。您的分支名应该是描述(例如,重构的身份验证,用户的内容缓存键,使视网膜-化身),以便其他人可以看到正在处理。Because of this, it's extremely important that your new branch is created off of master when working on a feature or a fix. Your branch name should be descriptive (e.g., refactor-authentication, user-content-cache-key, make-retina-avatars), so that others can see what is being worked on.来自GitHub Flow



添加提交


我们首先把分支切换到新的分支上add new function


修改新的版本


填写好新的SummaryDescription,提交新的版本并同步。 这样小伙伴登陆到GitHub上就看到了就可以清楚的看到一切的修改。

添加提交 Add commits 一旦你的分支已经建立,现在是时候开始进行更改。无论何时添加,编辑或删除一个文件,你作出承诺,并将其添加到您的分支。提交加入这一过程保持你的进步轨迹,你在一个特性分支工作。Once your branch has been created, it's time to start making changes. Whenever you add, edit, or delete a file, you're making a commit, and adding them to your branch. This process of adding commits keeps track of your progress as you work on a feature branch. 还承诺创建工作的透明历史,其他人可以按照理解你做了什么,以及为什么。每次提交都有一个关联的提交信息,这是解释为什么一个特定的变化作出了说明。此外,每次提交被认为是变革的一个独立单元。这使您可以回滚的变化,如果发现错误,或者如果你决定在一个不同的方向前进。Commits also create a transparent history of your work that others can follow to understand what you've done and why. Each commit has an associated commit message, which is a description explaining why a particular change was made. Furthermore, each commit is considered a separate unit of change. This lets you roll back changes if a bug is found, or if you decide to head in a different direction. ProTip

提交信息是重要的,特别是因为Git跟踪更改,然后将它们显示为承诺一旦他们推到服务器。通过字迹清晰提交信息,你可以更容易为其他人跟着,并提供反馈。Commit messages are important, especially since Git tracks your changes and then displays them as commits once they're pushed to the server. By writing clear commit messages, you can make it easier for other people to follow along and provide feedback.来自GitHub Flow



打开一个pull请求


这个是整个流程中比较关键的一步,发布Pull Request


点击客户端或者网页上的Pull Request发布。 我们这里点击Pull Request


我们填写好必要的说明性文字 点击Send Pull Request 他既然让我们到GitHub上看,我们就听他的,点击,进入。


我们发现小伙伴已经在下面留言了!



讨论和审核你的代码


你的小伙伴开始对你的代码讨论,修改,迭代。

讨论和审查你的代码 Discuss and review your code 一旦拉入请求已被打开,人或团队审查您的变化可能有疑问或意见。也许编码风格不匹配项目的指导方针,改变缺少单元测试,或者也许一切看起来不错,道具都是为了。引入请求旨在鼓励并捕获这种类型的对话。 Once a Pull Request has been opened, the person or team reviewing your changes may have questions or comments. Perhaps the coding style doesn't match project guidelines, the change is missing unit tests, or maybe everything looks great and props are in order. Pull Requests are designed to encourage and capture this type of conversation. 您还可以继续推送到你的分支在你提交的讨论和反馈光。如果有人评论说,你忘了做某件事,或者如果在代码中的错误,你可以在你的分支修复它,推高的变化。GitHub上会显示新的提交和其他任何意见,你可能会收到统一拉请求视图。 You can also continue to push to your branch in light of discussion and feedback about your commits. If someone comments that you forgot to do something or if there is a bug in the code, you can fix it in your branch and push up the change. GitHub will show your new commits and any additional feedback you may receive in the unified Pull Request view.


ProTip 拉请求的意见都写在降价,所以你可以插入图片和表情符,使用预先格式化的文本块,等轻质格式。 Pull Request comments are written in Markdown, so you can embed images and emoji, use pre-formatted text blocks, and other lightweight formatting.

部署

部署 Deploy 一旦你拉的请求进行了审查和部门通过你的测试,您可以部署您的更改,以验证他们的生产。如果你的分支造成的问题,您可以通过部署现有的主投产回滚 Once your pull request has been reviewed and the branch passes your tests, you can deploy your changes to verify them in production. If your branch causes issues, you can roll it back by deploying the existing master into production.

合并

合并分支我们之前已经说过,这里就不再赘述。

合并 Merge 现在,您的更改在生产中得到了验证,现在是时候你的代码合并到主分支。 Now that your changes have been verified in production, it is time to merge your code into the master branch. 合并后,引入请求保护的历史变迁到您的代码记录。因为他们是搜索的,他们不让任何人回去的时间理解为什么以及如何决定了。 Once merged, Pull Requests preserve a record of the historical changes to your code. Because they're searchable, they let anyone go back in time to understand why and how a decision was made.


ProTip 通过将某些关键字到您的拉请求的文本,你可以用代码相关联的问题。当你拉入请求合并,相关问题也将被关闭。例如,输入短语关闭#32将关闭在仓库中发行数量32。欲了解更多信息,请查看我们的帮助文章。 By incorporating certain keywords into the text of your Pull Request, you can associate issues with code. When your Pull Request is merged, the related issues are also closed. For example, entering the phrase Closes #32 would close issue number 32 in the repository. For more information, check out our help article.



基本的一些用法就完成了。看着这个操作一遍基础就差不多了。

这个知乎的编辑啊…………好累
----------------------------------------------------------------------------------------------------------------

在上述的几个教程里讲解了一些Github的基础使用,现在开始讲解一些使用技巧。


查找内容

在github页面上是没有搜索的按钮,如何搜索呢。 在网页上按T就会出现。 这样我们就能很方便的查找到我们需要的代码了。


评论小表情

常常在版本描述或者pull request时我们需要对伙伴的代码进行一下评论与说明,光是文字有点很死板,其实github给我有emoji,如何使用呢?其实很简单,只需要冒号就可以 :


这样我们就可以看到emoji表情,当然默认会显示五个常用的,你也可以继续敲下emoji的名字,出现更多(这里有所有的表情)。


忽略不想上传的文件

有些在github中的文件我们是不想上传的,我们如何过滤掉它们呢? 在github中对不想上传的文件点击右键。就会出现下面选项。Ignore file忽略这个文件 Ignore all.txt files 忽略所有的以.txt结尾的文件 这样就可以过滤掉你不想上传的文件


搜索项目

如何高效的搜索一个你想要的库呢? 我们常常评判一个项目的标准有star数目,fork数目和跟新时间。 通过搜索命令

stars

stars:>1000

表示star数目大于1000。

fork

fork:>1000

表示fork数目大于1000。


语言搜索

java,html等等

综合一下就是,比如你要查找一个stars大于1000的,fork大于200的java代码。

stars:>1000 fork:>200 java

就是这样。



查看项目中的语言类型

一个项目中,可能使用了多种语言,我们如何一下子就能看到一个项目使用了什么语言?其实很简单,Github已经为我们统计好了。



也行你注意过,但是没有发现它有什么用。
点击下面的彩条



github已经为我们统计好这个项目所有的语言及其比例。



总结

码字不易,终于写完了,如果觉得对你有帮助,我的目的就达到了。

谢谢

如有错误,还望指正。


不要光收藏,点个赞啊!



转载请通知作者!

谢谢!!!!!!!!!!!!!!!!!!!!

编辑于 2016-11-18

放(打)一(广)个(告)比较有意思的《GitHub - phodal/github-roam: GitHub 漫游指南》电子书,当然也是放在GitHub上的。

漫游在第547天里:phodal (Fengda Huang) · GitHub



  • 前言
    • 我与GitHub的故事
      • GitHub与收获
      • GitHub与成长
    • 为什么你应该深入GitHub
      • 方便工作
      • 获得一份工作
      • 扩大交际
  • Git基本知识与GitHub使用
    • Git
      • Git初入
    • GitHub
      • 版本管理与软件部署
      • GitHub与Git
      • 在GitHub创建项目
    • GitHub流行项目分析
    • Pull Request
      • 我的第一个PR
      • CLA
  • 构建GitHub项目
    • 如何用好GitHub
      • 敏捷软件开发
      • 测试
      • CI
      • 代码质量
    • 模块分离与测试
      • 代码模块化
      • 自动化测试
      • Jshint
      • Mocha
      • 测试示例
    • 代码质量与重构
      • Code Climate
      • 代码的坏味道
  • 创建项目文档
    • README
    • 在线文档
    • 可用示例
  • 测试
    • TDD
      • 一次测试驱动开发
      • 说说TDD
      • TDD思考
    • 功能测试
      • 轻量级网站测试TWill
      • Twill 登陆测试
      • Twill 测试脚本
    • Fake Server
  • 重构
    • 为什么重构?
    • 重构uMarkdown
      • 代码说明
    • Interllij Idea重构
      • Rename
      • Extract Method
      • Inline Method
      • Pull Members Up
      • 重构之以查询取代临时变量
  • 如何在GitHub“寻找灵感(fork)”
    • GitHub 漫游指南 -Lettuce构建过程
      • 需求
      • 计划
      • 实现第一个需求
      • 实现第二个需求
  • GitHub用户分析
    • 生成图表
      • 数据解析
      • Matplotlib
    • 每周分析
      • python github 每周情况分析
      • Python 数据分析
      • Python Matplotlib图表
    • 存储到数据库中
      • SQLite3
      • 数据导入
      • Redis
    • 邻近算法与相似用户
  • GitHub连击
    • 100天
      • 40天的提升
      • 100天的挑战
      • 140天的希冀
    • 200天的Showcase
      • 一些项目简述
      • google map solr polygon 搜索
      • 技能树
    • 365天
      • 编程的基础能力
      • 技术与框架设计
      • 领域与练习
      • 其他

顺便放上我的微信公众号的二维码。
发布于 2016-04-06

Udacity ——→网页链接

Google推荐的Udcity平台,你值得拥有。如何使用git和github这门课,github有34节课,加上git一共114节课,几位导师都是在google工作的....视频是在youtube上,网页上有中文字幕。ios和android也可以下载APP看(不用fq!!!),不过移动版本没有中文字幕。是不是最详细的github使用教程了!!!

萌新不求关注,点个赞让更多的人看到就可以了。

发布于 2016-11-07

为什么没人说Command Line???

新手都觉得command line太难,其实不然,就那么几个需要用的命令,多用几次就记熟了。记熟了不但操作极为方便,也是装X利器啊!!


跑题了。先说GitHub

请大家假设以下的情景,现在有一个项目,要有两个人来完成,小明和小红。

小明和小红一人一台电脑,分别在两个屋子里工作。

首先在GitHub上有一个原档,小明小红分别下载到自己的电脑里开始工作。

假设原文档如下
str = "Hello Zhihu!"for letter in str:    print (letter)

这时候小明说,好,我来接着写

name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)

小红拿到文件之后也说,好,我来接着写。

str = "Hello Zhihu!"for letter in str:    print (letter)str1="LiMaBianWangHong"

这个时候小明和小红是互相不知道对方在干什么的。


但是两个人必须同时完成这个coding,这个时候该怎么办呢?

没错,在GitHub上同步两人的文件。

小明先从GitHub上下载。小明一看没变化(此时小红还没上传),于是把自己的改变传上去。

此时原文档变成了
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)



这时小红开始同步,她的文件变成了这个样子:
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="LiMaBianWangHong"

小红确认了code无误之后又把自己的code同步到Github上

这时小明再同步,他就会看到
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="LiMaBianWangHong"


这个时候小明看着str1不顺眼打算,改一下
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="ChouNv"

与此同时小红也觉得str1有些别扭,她也改
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="XiaoHongShiNvShen"


这时小明先上传了上去,小红一同步一看

一头雾水。这时什么呢,因为两个人同时修改同一行,所以出现了merge confilict
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)<<<<<<<<<HeadHere is the original change.str1="XiaoHongShiNvShen"=======Here is the modified change.str1="ChouNv"

这个时候怎么办呢,就要手动修改。把提示的line全都删掉即可。

name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="XiaoHongShiNvShen"print("xiao ming shi sb"


讲到这里大家应该就对github有一个大致的印象了。基本就是个同步工作进程的工具。

那么实现同步都需要哪些命令行呢?其实很简单。我保证你一分钟就能记住。


小明或者小红得先看看github上有没有其他人的更新,所以他要先输入

>>> git status

这个很好理解吧,就是查看状态。

如果这时候先是说有修改过的文件,那你就要下载下来对不对啊。
>>> git pull

是不是很简单,往下拉

你拉下来之后,核对了,无误,要把自己的成果发布上去,怎么弄呢?

你想象两座山之间,要传递食物,中间有个小滑索的车,你是不是先把食物放进小车里,之后把小车推到对面的山去呢?

这里也是一样的,你要先
>>> git add 
先添加,add后可以跟-a 就是添加all 添加全部的意思,或者添加一个具体的文件,比如
>>> git add xiaoming.txt

现在食物放进车里了,下一步呢?
对面的山里人可能不知道你这吃的是什么,你是不是得写个条子留个言告诉别人是什么食物啊?

>>> git commit -m "这是汉堡包"

commit不难理解吧, -m就是message的意思。是什么message呢? “这是汉堡包”
一般这里写你对文件做出了什么修改 比如

>>> git commit -m "new feature: xiao hong bian bai fu mei"


至此你应经做完全部准备工作,就差推出去了!


>>> git push origin master

push很好理解吧,origin master 代表你的权限。多用几次就熟悉了!


以后不用开网页,用terminal上传文件到github,逼格高高的!



祝好!
发布于 2016-03-23
首先你要学会使用git,推荐pro git这本书。
关于github的使用,看这里worldhello.net/gotgithu,非常好的介绍
编辑于 2012-05-08
如何高效利用GitHub ← 阳志平的个人网站::技术
发布于 2013-01-28

你们如果以为我只会秀恩爱那就错了,应读者要求,最近在写一个针对小白的从0开始学习GitHub的系列,无门槛,包教包会,感兴趣的不妨看一下:


从0开始学习 GitHub 系列之「初识 GitHub」 - AndroidDeveloper - 知乎专栏

从0开始学习 GitHub 系列之「加入 GitHub」 - AndroidDeveloper - 知乎专栏

待续...


++++++++++++++++++++++++++++++++++++++++++++++++++++

我对GitHub可是真爱粉,媳妇也是写程序的,也知道GitHub,今天我发给媳妇一个链接,说你看我GitHub粉丝都涨到多少啦,媳妇一脸不屑的打开我的GitHub,然后就感动的哭了。。。



是的,正确使用GitHub的方式是用来----秀恩爱!
编辑于 2016-05-25
推荐廖雪峰的Git教程,通俗易懂。
跟着教程下来,add,commit,branch等各种命令有较深刻的了解。
Git教程 - 廖雪峰的官方网站
发布于 2014-07-23
首先了解什么是Git,为什么,如何使用Git
然后GitHub的使用就顺理成章了。
关于Git和GitHub的学习,推荐 Udacity 的 UD775 课程,对于初学者是非常好的入门教材,这门课程大概需要3个小时时间,之后相信你就可以比较熟练地使用Git和GitHub了。
Udacity的课程设计以Self Paced 为主,很适合想突击学习一方面知识的人。
课程连接: Advance Your Career Through Project-Based Online Classes
发布于 2014-11-17
分享一个在github上搜索技术资料的方法,比如你在学习java,你可以搜索awesome-java得到java的学习资料整理GitHub - akullpp/awesome-java:同时还有中文版GitHub - jobbole/awesome-java-cn
发布于 2016-03-01

不推荐看纸质资料,git和github涉及到很强的操作性,只看资料里的讲解是完全不够的。而且就像任何一门科学一样,我们为什么要用git,git有什么好处,学会了git后如何在github上和别人collaborate,这些东西都最好有人直接告诉我们。只告诉你怎么做不告诉你为什么以及背后原理的都是在耍流氓。千万别以为学会了git就会用github,除非你只玩单机版。不fork别人的repo,也不pull request,这样还怎么愉快地同性交友?

我之前只看了廖雪峰的那个git教程,因为网上很多人推荐。但看完了对git还是一知半解,github也只会个push……之后自己用pelican做博客想放在github上,结果还是因为不懂原理结果在创建.io repo的时候把pelican的原文件都覆盖了,还不知道怎么退回到原来的版本……唉,年少无知啊。直到一个月前发现了Udacity出的这门课How to Use Git and GitHub,udacity.com/course/how-.

这门课前两个lesson都在讲git的各种技巧,背后的概念也解释得很清楚。有了良好的git基础后lesson 3讲授如何使用github。介绍了很多在实际开发过程中遇到的问题,最典型的就是merge conflict,比如你fork了一个original repo,你在本地对local repo里little_prince.txt做了修改,push到了fork repo,但是此时original repo里的同一文件也被人做了修改。所以当你想要把自己的branch merge到 original repo的时候会有merge conflict。这种问题在collaborate过程中很常见,如何解决这种问题lesson 3里也讲得很清楚,先画概念图告诉你大致原理,然后用命令行演示给你看,非常良心。

不过只有英文字幕,如果觉得有困难的话,可以参考我做的笔记,How to Use Git and GitHub(一),How to Use Git and GitHub(二)。每过一个小节一定要自己在terminal里练一下,只看不练没什么效果。我看了下自己记录的用时,整个教程用了23小时34分,21天,大概每天一个多小时吧,可以做个参考。
发布于 2016-01-02

在我看来,使用GitHub也存在如《人间词话》中的三重境界。


第一重境界:昨夜西风凋碧树。独上高楼,望尽天涯路。
作为一个小白用户,机缘巧合,你刚刚注册了GitHub的账号,还不知Git,Push,Pull,Pull Request,Repository为何物。懵懵懂懂,如一个单纯的小孩,来到了满是漂亮贝壳的沙滩,却还叫不出颜色的名字。
朋友中只有自己一个人在玩GitHub,在浏览着网页的你,心中还有淡淡的孤独与忧伤。
面对着被star过万遍的repositories,关注者以k计的id们,你发出一声长叹:什么时候我才能写出那样的名库,成为那样的牛人。


第二重境界:衣带渐宽终不悔,为伊消得人憔悴。
你创建了第一个repo,用来存放自己写过的小代码们。
你创建了 你的id.github.io,用hexo或jekyll开始了自己的技术博客之旅。
第一次pull request,第一次被别人pull request。
第一次创建issue,第一次被别人创建issue。
你想到了一个idea,在google search和stackoverflow的忠心辅佐下,攻克一个又一个技术难题,实现一个又一个feature,你的开源项目越来越像那么回事。
一年有365天,你的GitHub上竟然就有365条打卡记录,无一天中断。
别人在感叹,在技术上成长怎么那么难,你反问他:你见过GitHub凌晨四点的样子吗?


第三重境界:众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
感谢时间这个好朋友,你有一天发现,你的followers也是以k计,你新开一个repository就引来了上百个watch。
你给Apache贡献过代码,给Tensorflow实现过feature,给Linux修过bug。
你在业界小有名气,很多人都知道你,你也认识很多人,你和你的朋友们在线上线下相遇,觥筹交错,谈笑风生。
江湖上都称呼你为大牛,在一年一度的InfoQ北京峰会上,凤凰科技一个带黑框眼镜的长发美女记者问你,“在成长为大牛的道路上,你最感谢谁?” 眼前的这个妹妹好像在哪里见过,你用拇指和食指摸了摸下巴,看着她的眼睛,缓缓说道,“感谢爸妈,感谢GitHub。”



下面是我的英文翻译,方便歪果仁朋友阅读。

As far as I can see, GitHub users are also experiencing the three levels described in“Poetic Remarks in the Human World” by Wang Kuo-wei.


Level 1: Last night the west wind shriveled the green-clad trees. Alone I climb the high tower, to gaze my fill along the road to the horizon.

As a new user, by any chance, you registered a GitHub account. You dont know whatGit, Push, Pull, Pull Request and Repository are. Just like an innocent child, you run into a beach full of colorful shells, but you cant even name the colors.
You are the only one among your friends to play with GitHub. Surfing around the webpages, you feel a little bit lonely and sad.
Facing repositories stared in 5-digit figure and IDs followed by some k, you sighed, “When can I create a famous repo like that? When can I grow to be a top coder like him.”


Level 2: My clothes grow daily more loose, yet care I not. For you am I thus wasting away in sorrow and pain.

You created your first repo to store your old naive code.
You created your_id.github.io and launched your technical blogging journey by hexo orjekyll.
Your first pull request, later your first incoming pull request.
Your first issue, later your first incoming issue.
You came up with an awesome idea, and thanks to Google Search and StackOverflow, you tackled one and another challenge, implemented one and another feature, and your open source project looks just like something.
There are 365 days in a year, and we found exactly 365 contribution tiles in your GitHub profile.
Others are complaining, “How can it be so hard to grow in tech?” You replied back, “Have you ever seen what is it like in GibHub on 4am?”


Level 3: I sought her in the crowd a hundred, a thousand times. Suddenly with a turn of the head, I saw her. That one there where the lamplight was fading.

Thank to Time, my good friend. One day, you found that your followers are somek, your new repository get 100+ watches on day one.
You once contributed code for Apache, you once implemented new features for TensorFlow, you once fixed bugs for Linux.
You gained some fame in Silicon Valley. Many people know you, you also know some of them. You and your friends meet online and offline, you drink and cheers, you talk and laugh.
In the annual QCon San Francisco Summit, you were interviewed by a blonde journalist, “Along your growing path, to whom do you want to say the biggest thanks?” The babe looks familiar, but you can’t remember. Thought for a short while, you said slowly, “Thanks my parents, thanks GitHub”.



如果你想了解更多我和GitHub的故事,请阅读:
我的新博文 《GitHub Pull Request初体验 | 给Hexo博客留言页面添加评论系统》
我的博客 宋哲的国际博客

编辑于 2016-01-07

Github

阳志平:”正是Github,让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。” 在阳志平:如何高效利用GitHub文中介 绍了Github的方方面面,包括一些很有意思的创意,如用Github做PPT,发布婚宴的邀请函等, 可以让人快速拥抱Github,十分不错。

  • How to build a Github,Github一名早期员工介绍Github的历史,5年108名员工无人离职。
  • 阳志平:如何高效利用GitHub,信息量很大,值得深入学习和实践。
  • Got Github,蒋鑫,介绍Github的开源书籍,你真的了解Github吗,如果不了解,可以认真看看此书。

Git

  • Pro Git,Git深入浅出教程,中文版。不过git-scm被blocked了。这是一本开源的书籍,源代码见Pro Git on Github
  • Git Internals PDF,来自Peepcode的开源书籍,源代码已经放在Github。
  • Git Reference,Git参考手册。
  • Linus讲解git,Google大会演讲,Linus介绍他创造git的原因,对比了git和svn。
发布于 2013-12-08
之前有在V2EX上看到有人分享过一个简易教程,图文并茂的,猛击这个网址 git - the simple guide 。非常详细,除了用很Q的图形教程给出操作流程步骤外还提供了不少有用的外联资源。
如果作为使用者的话,大多数情况下是git别人的代码进行查看,或是git做好的源代码configure和install。
如果是作为开发人员,不得不说免费用户上传的代码全部开源,所有人都能够查看,所以别不好意思。
编辑于 2013-01-28
看一百本书不如先玩一次,基本的创建项目,clone,add,commit,branch玩个遍,
遇到困难就去google,等有了感性认识再去读那些理论的东西。
发布于 2013-10-07
补充一点,让 Travis CI 帮你做自动测试,很多著名项目都这么做。
Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community
编辑于 2015-01-04

就我个人来说就讲一个事情了,因为各种原因,自己之前用的电脑和移动硬盘已经坏了。

所以有几个旧的项目(业余做的)历史纪录,甚至代码都找不到了。

所以github对于我来说首先是一个好的云备份平台,现在不用担心自己的机器/硬盘突然坏掉这样的事情发生了。

介绍用法的已经很多了,我不重复了
编辑于 2014-11-17
(为什么?)
下载知乎客户端
与世界分享知识、经验和见解
相关问题
GitHub 上都有哪些值得关注学习的 iOS 开源项目? 77 个回答
GitCafe 这样的代码托管网站在国内的前景如何? 54 个回答
Git 相比 svn 和其他版本管理工具的核心优势有哪些? 27 个回答
如何评价 GitHub 发布的文本编辑器 Atom? 59 个回答
GitHub 是怎么火起来的? 18 个回答
刘看山知乎指南知乎协议应用工作
联系我们 © 2017 知乎
首页发现话题
Git
GitHub

怎样使用 GitHub?

具体的使用方法和相关解释英语不好一点看不明白
关注者
26743
被浏览
1732186

112 个回答

作为一个文科妹子,我在看过几乎所有热门 github 教程之后依旧一头雾水,在近半年的摸索中终于明白啦~新年初,把自己纯小白的学习经验分享一下吧!

#什么是 Github ?
必须要放这张图了!!!
(图片来源GitHub 是怎样的一个存在? - Deep Reader 的回答)

Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

好吧,我相信看到这里你已经晕了,这也是我一开始看那些所谓经典教程的感受。写这些教程的人都是几年以上的程序员呀,他们往往直接就告诉你所有命令的含义或者整个体系。
专家盲点(expert blind spot)就是对一个事物知道的越多,就越发不记得“不知道这个事”的情形。

简单来说,Git 是一个管理你的「代码的历史记录」的工具。
我不是程序员为什么要学这个啊啊啊!又不要管理代码们!

别急,虽然 github 学习门槛高,一会你就知道为什么人人都应该会这个啦!

----------------------------
学习步骤

##注册安装
去官网注册一个账号(这个你应该会,恩就不放链接了)
然后,下载一个GitHub Desktop mac客户端是最方便的啦!(命令行什么的真的是会越来越晕!先别管他们!)

假设33(珊姗就是我啦)、小四和你三个人一起写一本小说(澄清一下,并没有黑任何人的意思,恩!),暂且叫做...《梦里花落爱吃土时代》
--
图(脑补)
--
(⊙v⊙)嗯!终于可以正式开始了!

#step1:创建新项目
我们三个人在不同的城市要远程共同写一本书,要有一个漂亮的笔记本吧?

「repositories」就是你的笔记本们。你只需知道 Repository 是个放项目的地方就行。有时候会出现 Repositories,是多个 Repository 的意思。

**fork**
如果你不想新建一个笔记本,看到小四之前写过一个好到炸裂的文章,想把他的直接全部偷过来,修改修改就成你自己的文章了,这应该怎么办呢?
github 还提供了一个很赞的功能叫做 fork ,你只需要点击这个神奇的按钮,就可以把他的「笔记本」变成你自己的啦!任意修改都可以哦~


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

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

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

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

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

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

-----------
好了,知道这些基本操作入门应该够了,我们来回顾一下(不要嫌弃我的画工啊喂!)

入门初期迅速得到一些正反馈对于学习一门新技能来说实在是太重要了!尤其是编程这么炫酷的事情!
所以先不要管什么复杂的 issue 呀 wiki 呀乱七八糟的操作,按照上面的一步一步来,如果遇到什么问题 google 之,一般都会解决的。

有一个段子不就是说,当你遇到问题去找最高级的工程师,他们一般都会直接 google 吗?而且自带的帮助手册也是解决问题的好办法,比如你要新建一个 branch=》Create a new branch with git and manage branches · Kunena/Kunena-Forum Wiki · GitHub

这种遇到问题先自己尝试解决的小技巧,也是我自从学编程以来最大的收获。

------------------------

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

回到文章开头,我又不是程序猿不用写代码玩这个干啥?

你有没有碰到过团队里几个人共同协作写一个文档的时候?或者说需要反复修改的东西?比如最简单的写论文,用 word 保存一个一个版本 e-mail 给 boss?下次再找上次修改了什么地方简直要死啊有木有!!!

相信你看了我的远程协作写小说的例子应该已经明白了, github 说白了就是一个「版本控制工具」。我们所谓的「回退」到历史记录,随时查看更改了什么地方,利用这个功能可以做的事情简直太多啦!

就像 github 其中一位创始人[Chris](defunkt (Chris Wanstrath) · GitHub)也详细描述了[GitHub初创的前因后果](Startup Riot 2009 Keynote 路 GitHub),他说道:

Do whatever you want.

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

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

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

4、找男票
没错,看这个项目!利用众包的形式一起罗列男友条件的 list 然后试图自己开发出一个男票233333
YixuanFranco/YourBoyfriend · GitHub
有人评论问我用这个找到男票了吗?
统一回复:
并!没!有!

5、用GitHub搭建博客、个人网站或者公司官网

一个有自己域名的独立博客,是不是很帅?!

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

Jekyll 的教程和我自己的博客会稍后放出。。(先给自己挖个坑)


6、用GitHub协作翻译

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


7、项目管理

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


7、政府文件?
之前看到一个知乎回答说:日本政府把宪法放上去了,德国政府也做过类似的事:German Federal Law Now on GitHub。除了德日之外,英美在 GitHub 上也有很多公众服务:英国政府多达 10 页的项目目录:Government Digital Service · GitHub 其中很多是政府项目的源代码或者设计原则之类。芝加哥的公开地理信息:Forking your CityNew York Open City: City of New York 路
(原谅我找不到这个回答了,欢迎补充)

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

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

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

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

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

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

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

-------------------------------------
#更多高阶教程:
如果你已经不满足于上面的基础知识了,欢迎探索更高级的玩法!
1、GitCafe / Help
2、[git简明指南](git - the simple guide)墙裂推荐!漫画的形式很形象(恩我承认比我画的好看多了)

3、在线交互学习 github 的网站Learn Git Branching 这个也很好玩~

4、[GitHub自身的官方博客](The GitHub Blog · GitHub)

5、git-flow 备忘清单

入门书籍推荐:
GitHub入门与实践 (豆瓣)比较基础
Pro Git (豆瓣) 更高级的教程,很全面!

对了对了,还有阳志平老师的两篇非常全面的旧文(这么称呼好生疏啊2333)
如何高效利用GitHub
Git与Github入门资料

------------------------
( ⊙ o ⊙ )啊!知乎居然还不支持 markdown 心好累。。

祝大家新年快乐。
ps:有朋友问我真的用 github 来写小说吗?
o(╯□╰)o只是举例子啊!方便大家理解而已...
还是会写一点点代码的(*/ω\*)

欢迎各位程序员哥哥们纠错呀,别忘了点赞赞赞!!!!!
编辑于 2016-01-02
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的基本功能了。
编辑于 2015-11-15
--
首先你要学会git, 提供一些相关的资讯,望有帮助:
  • progit这本书是必看的
    • git-scm.com/bookgit-scm.com/book/zh
    • 至少阅读:第一,第二,第三,第五,共4章,即可入门。
    • 不过这个网站被墙了,提供下镜像吧:progit-zh.epub 和 [中文].Pro Git.pdf
  • 在熟悉命令行后,也许你会需要UI,那可以选择:
    • Downloads - msysgit - Git for Windows
    • code.google.com/p/torto
    • sourcetreeapp.com/
  • 然后建议再看看 git-flow --> 一个成功的Git分支模型
    • 介绍:A successful Git branching model
    • 翻译:juvenxu.com/2010/11/28/
    • 工具:nvie/gitflow · GitHub
    • git-flow 备忘清单
  • 最后,你若需要本地搭建一个,那就用GITLAB: Self Hosted Git Management Application
  • 补充一个刚发现的互动学习git的项目:Learn Git Branching
  • 再补充一个:图解Git
  • 再补充一个:Git Magic - 前言
  • 然后剩下github的,看官方说明吧:help.github.com/

下图, 我之前对gitflow的一个翻译:
编辑于 2013-12-07
这是我在学习github的时候顺便写的教程,简单明了。


2016.9.24更新
-----------------------------------
在使用技巧中添加一条查看代码比例。

2016.8.28更新
-----------------------------------
添加GitHub for Windows使用教程(四)
主要是一些github使用技巧。


博客地址

GitHub for Windows使用教程(一)
GitHub for Windows使用教程(二)
GitHub for windows使用教程(三)
Github for windows使用教程(四)

如若有错,还望指正。

如果你还不知道什么是git,只知道github,但是还不会用,我想这个教程会帮助你。

前言

鉴于网上目前的教材都太落后,github for windows已经更新了多个版本,好多界面都发生了变化,所以来写这个教程。目的是为了帮助和我一样初学github,但是苦于找不到教程的同学,为了写最详细的教程。配备了大量的图文介绍。该教程是基于GitHub for windows (3.0.17.0)


什么是Github

说到什么事github,我们先看wikipedia的描述“GitHub是一个利用Git进行版本控制、专门用于存放软件代码与内容的共享虚拟主机服务。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

准备工作
  1. 下载github for windows,安装这里不赘述。
  2. 注册github账号
  3. 登陆到github for windows。

准备工作都完了,我们开始正式学习。^_^

创建第一个代码库
认识界面

github for windows的界面非常清爽,的确符合geek的性质,个人表示非常喜欢。 我们来建立第一个仓库,点击左上角的+号,初次建立他会有一圈圈的涟漪,非常漂亮哦。 打开之后有三个选项,AddCreateClone。 我们分别来介绍一下这三个功能。


Add功能

如果本地有工程,就可以使用Add添加


Clone功能

这个功能其实最好理解了,克隆这名字通俗易懂好理解。 如何使用Clone功能呢? 就是将在浏览器上已经创建好的项目导入到本地,换句话说就是下载到本地。


Create功能

创建一个代码库, Name填写你的仓库名字。Local path写你将要保存在本地路径。


我们主要从这个功能开始github之旅。 我们在这里填写First,来创建第一个我们自己的repoeitory。


开始使用第一个代码库
修改第一个代码库中内容

我们来找到刚刚创建的代码库在本地的位置。就是刚刚在local path的地址路径,当然如果你忘了,请右键点击First。

选择Open in Explorer。这样我们就可以转到刚刚的路径下。 我们新建一个文本文档。在里面编辑。 如下


此时的github就会变成这个样子(Changs):


你会发现此时github会出现刚刚编辑的内容。

  1. 这个是测试文本
  2. 你好
并且前面会有蓝色标识,那么这个蓝色标识是什么用呢?
其实这个蓝色标识是提示你会上改变的文本。比如我第一次只想改变 这个是测试文本并不想把你好上传。 这时我们点击一下你好的前面的蓝色标识

你会发现你好前面的蓝色标识没有了。
我们填写好SummerDescription Summer就是这次改动的总结,我们也可以理解为标题*(必填),而Description可以理解为详细概况(选填)*

我们这里只选择第一个修改对象,也就是这个是测试文本就行修改。summer我们填写为第一次修改,Description我们填写为增加了这个是测试文本的内容,之后点击Commit to master


切换到History目录下 我们会发现他改变了。 这次我们把你好进行添加。


History目录下发生了这样的改变。会在History目录下形成一天时间线,来指出每一次的修改标题和内容,同时会把修改的内容用绿色标识标出。 我们打开本地的文本,删除刚刚添加的第一行这个是测试文本


此时你就会发现github发生了变化。 此时的红色标识标识删除。我们写好Summer和Description并点击Commit to master。 这样我们就删除了第一行。同时在History目录下又多了一条时间轴。


这样我们就完成了删除。

上传与同步
上传

此时,当我们打开github网页,就会发现此时你的修改的内容并没有出现在这里。这是因为你没有进行同步,仅仅是在本地就行了修改。此时我们仅仅需要点击右上角的publish


此时你就会本地内容已经上传到网页上。


同步

当你的代码库上传后就会发现,原来的publish以及变为了Sync。 点击Sync同步代码库!




分支的使用
创建分支

我们创建第一个分支取名为new masterh,点击Create new branch创建第一个分支


我们发现此时的分支已经切换到了我们刚刚创建的分支new masterch


我们来修改new masterch分支上的内容。 我们仍旧打开FirstDemo.txt进行编辑。输入以下内容

创建的第一个分支。

打开github进行,填写SummaryDescription


之后我们点击Commit to new-masterHistory目录下,我们可以看到会有两条主线,分别是masternew-master并且在new-master的分支下又一个蓝色的实线空心圈和一个虚线空心圈

实线圈表示当前的节点,空心圈表示下一次修改时的节点。


红线标示的部分就是当前的分支


切换分支

点击红色划线部分就会出现分支的列表


我们点击master就会切换到master分支。


上传/同步分支

这个操作和同步仓库是一个操作,点击Publish/Sync上传或同步分支。

删除分支

首先要把分支切换到你要删除的分支下,如我们要删除new master,将分支切换到new master


点击右上角齿轮就会出现Delete new master 点击Delete new master就会弹出一个对话框,询问删除的内容。


第一个yes ,Delete both是将本地与网页全部删除;

第二个Delete local only仅仅是删除本地。

第三个是取消。


合并两个分支

将一个分支与master分支进行合并。 我们首先把分支切换到master下,点击Update from new-branch进行分支的合并。


此时我们查看history目录下就会


团队协作流程
认识Flow

GitHub Flow是一个轻量级的,基于分支的工作流程,支持团队和部署在那里的定期做项目。


为团队成员写入权限

在我们的队友添加一个写的权限,这样我们的队友才能很好的修改代码。 我们打开网页上的GitHub,点击settings,


之后我们找到collaborators,这里会让我们验证密码,之后就有添加合作者的选项。


这样我们就能添加我们的小伙伴了! 这样我们就添加了新的小伙伴,新的小伙伴有着同样的权限去修改和管理代码。 此时我们就会看到我的小伙伴wevan的github主页上就会出现关于我创建的First的各种通知。


创建分支

在我们创建一个叫add new function的分支。

创建一个分支 Create a branch 当你工作的一个项目,你会在任何给定的时间有一堆不同的功能或正在进行的想法 - 其中一些是蓄势待发,而另一些则不是。分支的存在是为了帮助你管理这个工作流程。When you're working on a project, you're going to have a bunch of different features or ideas in progress at any given time – some of which are ready to go, and others which are not. Branching exists to help you manage this workflow. 当您在项目中创建一个分支,你创造一个环境,在那里你可以尝试新的想法。你让一个分支的更改不会影响主分支,让你可以自由进行实验,并提交更改,在你的分支将不会被合并,直到它准备好知识安全的人所正在与合作进行审查。When you create a branch in your project, you're creating an environment where you can try out new ideas. Changes you make on a branch don't affect the master branch, so you're free to experiment and commit changes, safe in the knowledge that your branch won't be merged until it's ready to be reviewed by someone you're collaborating with. ProTip 分支在Git中是一个核心概念,整个GitHub的流量是基于它。这里只有一个规则:在任何主分支总是部署。Branching is a core concept in Git, and the entire GitHub Flow is based upon it. There's only one rule: anything in the master branch is always deployable. 正因为如此,这是非常重要的一个功能或修复工作时,你的新分支关老爷的创建。您的分支名应该是描述(例如,重构的身份验证,用户的内容缓存键,使视网膜-化身),以便其他人可以看到正在处理。Because of this, it's extremely important that your new branch is created off of master when working on a feature or a fix. Your branch name should be descriptive (e.g., refactor-authentication, user-content-cache-key, make-retina-avatars), so that others can see what is being worked on.来自GitHub Flow



添加提交


我们首先把分支切换到新的分支上add new function


修改新的版本


填写好新的SummaryDescription,提交新的版本并同步。 这样小伙伴登陆到GitHub上就看到了就可以清楚的看到一切的修改。

添加提交 Add commits 一旦你的分支已经建立,现在是时候开始进行更改。无论何时添加,编辑或删除一个文件,你作出承诺,并将其添加到您的分支。提交加入这一过程保持你的进步轨迹,你在一个特性分支工作。Once your branch has been created, it's time to start making changes. Whenever you add, edit, or delete a file, you're making a commit, and adding them to your branch. This process of adding commits keeps track of your progress as you work on a feature branch. 还承诺创建工作的透明历史,其他人可以按照理解你做了什么,以及为什么。每次提交都有一个关联的提交信息,这是解释为什么一个特定的变化作出了说明。此外,每次提交被认为是变革的一个独立单元。这使您可以回滚的变化,如果发现错误,或者如果你决定在一个不同的方向前进。Commits also create a transparent history of your work that others can follow to understand what you've done and why. Each commit has an associated commit message, which is a description explaining why a particular change was made. Furthermore, each commit is considered a separate unit of change. This lets you roll back changes if a bug is found, or if you decide to head in a different direction. ProTip

提交信息是重要的,特别是因为Git跟踪更改,然后将它们显示为承诺一旦他们推到服务器。通过字迹清晰提交信息,你可以更容易为其他人跟着,并提供反馈。Commit messages are important, especially since Git tracks your changes and then displays them as commits once they're pushed to the server. By writing clear commit messages, you can make it easier for other people to follow along and provide feedback.来自GitHub Flow



打开一个pull请求


这个是整个流程中比较关键的一步,发布Pull Request


点击客户端或者网页上的Pull Request发布。 我们这里点击Pull Request


我们填写好必要的说明性文字 点击Send Pull Request 他既然让我们到GitHub上看,我们就听他的,点击,进入。


我们发现小伙伴已经在下面留言了!



讨论和审核你的代码


你的小伙伴开始对你的代码讨论,修改,迭代。

讨论和审查你的代码 Discuss and review your code 一旦拉入请求已被打开,人或团队审查您的变化可能有疑问或意见。也许编码风格不匹配项目的指导方针,改变缺少单元测试,或者也许一切看起来不错,道具都是为了。引入请求旨在鼓励并捕获这种类型的对话。 Once a Pull Request has been opened, the person or team reviewing your changes may have questions or comments. Perhaps the coding style doesn't match project guidelines, the change is missing unit tests, or maybe everything looks great and props are in order. Pull Requests are designed to encourage and capture this type of conversation. 您还可以继续推送到你的分支在你提交的讨论和反馈光。如果有人评论说,你忘了做某件事,或者如果在代码中的错误,你可以在你的分支修复它,推高的变化。GitHub上会显示新的提交和其他任何意见,你可能会收到统一拉请求视图。 You can also continue to push to your branch in light of discussion and feedback about your commits. If someone comments that you forgot to do something or if there is a bug in the code, you can fix it in your branch and push up the change. GitHub will show your new commits and any additional feedback you may receive in the unified Pull Request view.


ProTip 拉请求的意见都写在降价,所以你可以插入图片和表情符,使用预先格式化的文本块,等轻质格式。 Pull Request comments are written in Markdown, so you can embed images and emoji, use pre-formatted text blocks, and other lightweight formatting.

部署

部署 Deploy 一旦你拉的请求进行了审查和部门通过你的测试,您可以部署您的更改,以验证他们的生产。如果你的分支造成的问题,您可以通过部署现有的主投产回滚 Once your pull request has been reviewed and the branch passes your tests, you can deploy your changes to verify them in production. If your branch causes issues, you can roll it back by deploying the existing master into production.

合并

合并分支我们之前已经说过,这里就不再赘述。

合并 Merge 现在,您的更改在生产中得到了验证,现在是时候你的代码合并到主分支。 Now that your changes have been verified in production, it is time to merge your code into the master branch. 合并后,引入请求保护的历史变迁到您的代码记录。因为他们是搜索的,他们不让任何人回去的时间理解为什么以及如何决定了。 Once merged, Pull Requests preserve a record of the historical changes to your code. Because they're searchable, they let anyone go back in time to understand why and how a decision was made.


ProTip 通过将某些关键字到您的拉请求的文本,你可以用代码相关联的问题。当你拉入请求合并,相关问题也将被关闭。例如,输入短语关闭#32将关闭在仓库中发行数量32。欲了解更多信息,请查看我们的帮助文章。 By incorporating certain keywords into the text of your Pull Request, you can associate issues with code. When your Pull Request is merged, the related issues are also closed. For example, entering the phrase Closes #32 would close issue number 32 in the repository. For more information, check out our help article.



基本的一些用法就完成了。看着这个操作一遍基础就差不多了。

这个知乎的编辑啊…………好累
----------------------------------------------------------------------------------------------------------------

在上述的几个教程里讲解了一些Github的基础使用,现在开始讲解一些使用技巧。


查找内容

在github页面上是没有搜索的按钮,如何搜索呢。 在网页上按T就会出现。 这样我们就能很方便的查找到我们需要的代码了。


评论小表情

常常在版本描述或者pull request时我们需要对伙伴的代码进行一下评论与说明,光是文字有点很死板,其实github给我有emoji,如何使用呢?其实很简单,只需要冒号就可以 :


这样我们就可以看到emoji表情,当然默认会显示五个常用的,你也可以继续敲下emoji的名字,出现更多(这里有所有的表情)。


忽略不想上传的文件

有些在github中的文件我们是不想上传的,我们如何过滤掉它们呢? 在github中对不想上传的文件点击右键。就会出现下面选项。Ignore file忽略这个文件 Ignore all.txt files 忽略所有的以.txt结尾的文件 这样就可以过滤掉你不想上传的文件


搜索项目

如何高效的搜索一个你想要的库呢? 我们常常评判一个项目的标准有star数目,fork数目和跟新时间。 通过搜索命令

stars

stars:>1000

表示star数目大于1000。

fork

fork:>1000

表示fork数目大于1000。


语言搜索

java,html等等

综合一下就是,比如你要查找一个stars大于1000的,fork大于200的java代码。

stars:>1000 fork:>200 java

就是这样。



查看项目中的语言类型

一个项目中,可能使用了多种语言,我们如何一下子就能看到一个项目使用了什么语言?其实很简单,Github已经为我们统计好了。



也行你注意过,但是没有发现它有什么用。
点击下面的彩条



github已经为我们统计好这个项目所有的语言及其比例。



总结

码字不易,终于写完了,如果觉得对你有帮助,我的目的就达到了。

谢谢

如有错误,还望指正。


不要光收藏,点个赞啊!



转载请通知作者!

谢谢!!!!!!!!!!!!!!!!!!!!

编辑于 2016-11-18

放(打)一(广)个(告)比较有意思的《GitHub - phodal/github-roam: GitHub 漫游指南》电子书,当然也是放在GitHub上的。

漫游在第547天里:phodal (Fengda Huang) · GitHub



  • 前言
    • 我与GitHub的故事
      • GitHub与收获
      • GitHub与成长
    • 为什么你应该深入GitHub
      • 方便工作
      • 获得一份工作
      • 扩大交际
  • Git基本知识与GitHub使用
    • Git
      • Git初入
    • GitHub
      • 版本管理与软件部署
      • GitHub与Git
      • 在GitHub创建项目
    • GitHub流行项目分析
    • Pull Request
      • 我的第一个PR
      • CLA
  • 构建GitHub项目
    • 如何用好GitHub
      • 敏捷软件开发
      • 测试
      • CI
      • 代码质量
    • 模块分离与测试
      • 代码模块化
      • 自动化测试
      • Jshint
      • Mocha
      • 测试示例
    • 代码质量与重构
      • Code Climate
      • 代码的坏味道
  • 创建项目文档
    • README
    • 在线文档
    • 可用示例
  • 测试
    • TDD
      • 一次测试驱动开发
      • 说说TDD
      • TDD思考
    • 功能测试
      • 轻量级网站测试TWill
      • Twill 登陆测试
      • Twill 测试脚本
    • Fake Server
  • 重构
    • 为什么重构?
    • 重构uMarkdown
      • 代码说明
    • Interllij Idea重构
      • Rename
      • Extract Method
      • Inline Method
      • Pull Members Up
      • 重构之以查询取代临时变量
  • 如何在GitHub“寻找灵感(fork)”
    • GitHub 漫游指南 -Lettuce构建过程
      • 需求
      • 计划
      • 实现第一个需求
      • 实现第二个需求
  • GitHub用户分析
    • 生成图表
      • 数据解析
      • Matplotlib
    • 每周分析
      • python github 每周情况分析
      • Python 数据分析
      • Python Matplotlib图表
    • 存储到数据库中
      • SQLite3
      • 数据导入
      • Redis
    • 邻近算法与相似用户
  • GitHub连击
    • 100天
      • 40天的提升
      • 100天的挑战
      • 140天的希冀
    • 200天的Showcase
      • 一些项目简述
      • google map solr polygon 搜索
      • 技能树
    • 365天
      • 编程的基础能力
      • 技术与框架设计
      • 领域与练习
      • 其他

顺便放上我的微信公众号的二维码。
发布于 2016-04-06

Udacity ——→网页链接

Google推荐的Udcity平台,你值得拥有。如何使用git和github这门课,github有34节课,加上git一共114节课,几位导师都是在google工作的....视频是在youtube上,网页上有中文字幕。ios和android也可以下载APP看(不用fq!!!),不过移动版本没有中文字幕。是不是最详细的github使用教程了!!!

萌新不求关注,点个赞让更多的人看到就可以了。

发布于 2016-11-07

为什么没人说Command Line???

新手都觉得command line太难,其实不然,就那么几个需要用的命令,多用几次就记熟了。记熟了不但操作极为方便,也是装X利器啊!!


跑题了。先说GitHub

请大家假设以下的情景,现在有一个项目,要有两个人来完成,小明和小红。

小明和小红一人一台电脑,分别在两个屋子里工作。

首先在GitHub上有一个原档,小明小红分别下载到自己的电脑里开始工作。

假设原文档如下
str = "Hello Zhihu!"for letter in str:    print (letter)

这时候小明说,好,我来接着写

name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)

小红拿到文件之后也说,好,我来接着写。

str = "Hello Zhihu!"for letter in str:    print (letter)str1="LiMaBianWangHong"

这个时候小明和小红是互相不知道对方在干什么的。


但是两个人必须同时完成这个coding,这个时候该怎么办呢?

没错,在GitHub上同步两人的文件。

小明先从GitHub上下载。小明一看没变化(此时小红还没上传),于是把自己的改变传上去。

此时原文档变成了
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)



这时小红开始同步,她的文件变成了这个样子:
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="LiMaBianWangHong"

小红确认了code无误之后又把自己的code同步到Github上

这时小明再同步,他就会看到
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="LiMaBianWangHong"


这个时候小明看着str1不顺眼打算,改一下
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="ChouNv"

与此同时小红也觉得str1有些别扭,她也改
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="XiaoHongShiNvShen"


这时小明先上传了上去,小红一同步一看

一头雾水。这时什么呢,因为两个人同时修改同一行,所以出现了merge confilict
name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)<<<<<<<<<HeadHere is the original change.str1="XiaoHongShiNvShen"=======Here is the modified change.str1="ChouNv"

这个时候怎么办呢,就要手动修改。把提示的line全都删掉即可。

name = "XiaoMing"str = "Hello {}! {}Zui Niu Bi ".format(name, name)for letter in str:    print (letter)str1="XiaoHongShiNvShen"print("xiao ming shi sb"


讲到这里大家应该就对github有一个大致的印象了。基本就是个同步工作进程的工具。

那么实现同步都需要哪些命令行呢?其实很简单。我保证你一分钟就能记住。


小明或者小红得先看看github上有没有其他人的更新,所以他要先输入

>>> git status

这个很好理解吧,就是查看状态。

如果这时候先是说有修改过的文件,那你就要下载下来对不对啊。
>>> git pull

是不是很简单,往下拉

你拉下来之后,核对了,无误,要把自己的成果发布上去,怎么弄呢?

你想象两座山之间,要传递食物,中间有个小滑索的车,你是不是先把食物放进小车里,之后把小车推到对面的山去呢?

这里也是一样的,你要先
>>> git add 
先添加,add后可以跟-a 就是添加all 添加全部的意思,或者添加一个具体的文件,比如
>>> git add xiaoming.txt

现在食物放进车里了,下一步呢?
对面的山里人可能不知道你这吃的是什么,你是不是得写个条子留个言告诉别人是什么食物啊?

>>> git commit -m "这是汉堡包"

commit不难理解吧, -m就是message的意思。是什么message呢? “这是汉堡包”
一般这里写你对文件做出了什么修改 比如

>>> git commit -m "new feature: xiao hong bian bai fu mei"


至此你应经做完全部准备工作,就差推出去了!


>>> git push origin master

push很好理解吧,origin master 代表你的权限。多用几次就熟悉了!


以后不用开网页,用terminal上传文件到github,逼格高高的!



祝好!
发布于 2016-03-23
首先你要学会使用git,推荐pro git这本书。
关于github的使用,看这里worldhello.net/gotgithu,非常好的介绍
编辑于 2012-05-08
如何高效利用GitHub ← 阳志平的个人网站::技术
发布于 2013-01-28

你们如果以为我只会秀恩爱那就错了,应读者要求,最近在写一个针对小白的从0开始学习GitHub的系列,无门槛,包教包会,感兴趣的不妨看一下:


从0开始学习 GitHub 系列之「初识 GitHub」 - AndroidDeveloper - 知乎专栏

从0开始学习 GitHub 系列之「加入 GitHub」 - AndroidDeveloper - 知乎专栏

待续...


++++++++++++++++++++++++++++++++++++++++++++++++++++

我对GitHub可是真爱粉,媳妇也是写程序的,也知道GitHub,今天我发给媳妇一个链接,说你看我GitHub粉丝都涨到多少啦,媳妇一脸不屑的打开我的GitHub,然后就感动的哭了。。。



是的,正确使用GitHub的方式是用来----秀恩爱!
编辑于 2016-05-25
推荐廖雪峰的Git教程,通俗易懂。
跟着教程下来,add,commit,branch等各种命令有较深刻的了解。
Git教程 - 廖雪峰的官方网站
发布于 2014-07-23
首先了解什么是Git,为什么,如何使用Git
然后GitHub的使用就顺理成章了。
关于Git和GitHub的学习,推荐 Udacity 的 UD775 课程,对于初学者是非常好的入门教材,这门课程大概需要3个小时时间,之后相信你就可以比较熟练地使用Git和GitHub了。
Udacity的课程设计以Self Paced 为主,很适合想突击学习一方面知识的人。
课程连接: Advance Your Career Through Project-Based Online Classes
发布于 2014-11-17
分享一个在github上搜索技术资料的方法,比如你在学习java,你可以搜索awesome-java得到java的学习资料整理GitHub - akullpp/awesome-java:同时还有中文版GitHub - jobbole/awesome-java-cn
发布于 2016-03-01

不推荐看纸质资料,git和github涉及到很强的操作性,只看资料里的讲解是完全不够的。而且就像任何一门科学一样,我们为什么要用git,git有什么好处,学会了git后如何在github上和别人collaborate,这些东西都最好有人直接告诉我们。只告诉你怎么做不告诉你为什么以及背后原理的都是在耍流氓。千万别以为学会了git就会用github,除非你只玩单机版。不fork别人的repo,也不pull request,这样还怎么愉快地同性交友?

我之前只看了廖雪峰的那个git教程,因为网上很多人推荐。但看完了对git还是一知半解,github也只会个push……之后自己用pelican做博客想放在github上,结果还是因为不懂原理结果在创建.io repo的时候把pelican的原文件都覆盖了,还不知道怎么退回到原来的版本……唉,年少无知啊。直到一个月前发现了Udacity出的这门课How to Use Git and GitHub,udacity.com/course/how-.

这门课前两个lesson都在讲git的各种技巧,背后的概念也解释得很清楚。有了良好的git基础后lesson 3讲授如何使用github。介绍了很多在实际开发过程中遇到的问题,最典型的就是merge conflict,比如你fork了一个original repo,你在本地对local repo里little_prince.txt做了修改,push到了fork repo,但是此时original repo里的同一文件也被人做了修改。所以当你想要把自己的branch merge到 original repo的时候会有merge conflict。这种问题在collaborate过程中很常见,如何解决这种问题lesson 3里也讲得很清楚,先画概念图告诉你大致原理,然后用命令行演示给你看,非常良心。

不过只有英文字幕,如果觉得有困难的话,可以参考我做的笔记,How to Use Git and GitHub(一),How to Use Git and GitHub(二)。每过一个小节一定要自己在terminal里练一下,只看不练没什么效果。我看了下自己记录的用时,整个教程用了23小时34分,21天,大概每天一个多小时吧,可以做个参考。
发布于 2016-01-02

在我看来,使用GitHub也存在如《人间词话》中的三重境界。


第一重境界:昨夜西风凋碧树。独上高楼,望尽天涯路。
作为一个小白用户,机缘巧合,你刚刚注册了GitHub的账号,还不知Git,Push,Pull,Pull Request,Repository为何物。懵懵懂懂,如一个单纯的小孩,来到了满是漂亮贝壳的沙滩,却还叫不出颜色的名字。
朋友中只有自己一个人在玩GitHub,在浏览着网页的你,心中还有淡淡的孤独与忧伤。
面对着被star过万遍的repositories,关注者以k计的id们,你发出一声长叹:什么时候我才能写出那样的名库,成为那样的牛人。


第二重境界:衣带渐宽终不悔,为伊消得人憔悴。
你创建了第一个repo,用来存放自己写过的小代码们。
你创建了 你的id.github.io,用hexo或jekyll开始了自己的技术博客之旅。
第一次pull request,第一次被别人pull request。
第一次创建issue,第一次被别人创建issue。
你想到了一个idea,在google search和stackoverflow的忠心辅佐下,攻克一个又一个技术难题,实现一个又一个feature,你的开源项目越来越像那么回事。
一年有365天,你的GitHub上竟然就有365条打卡记录,无一天中断。
别人在感叹,在技术上成长怎么那么难,你反问他:你见过GitHub凌晨四点的样子吗?


第三重境界:众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
感谢时间这个好朋友,你有一天发现,你的followers也是以k计,你新开一个repository就引来了上百个watch。
你给Apache贡献过代码,给Tensorflow实现过feature,给Linux修过bug。
你在业界小有名气,很多人都知道你,你也认识很多人,你和你的朋友们在线上线下相遇,觥筹交错,谈笑风生。
江湖上都称呼你为大牛,在一年一度的InfoQ北京峰会上,凤凰科技一个带黑框眼镜的长发美女记者问你,“在成长为大牛的道路上,你最感谢谁?” 眼前的这个妹妹好像在哪里见过,你用拇指和食指摸了摸下巴,看着她的眼睛,缓缓说道,“感谢爸妈,感谢GitHub。”



下面是我的英文翻译,方便歪果仁朋友阅读。

As far as I can see, GitHub users are also experiencing the three levels described in“Poetic Remarks in the Human World” by Wang Kuo-wei.


Level 1: Last night the west wind shriveled the green-clad trees. Alone I climb the high tower, to gaze my fill along the road to the horizon.

As a new user, by any chance, you registered a GitHub account. You dont know whatGit, Push, Pull, Pull Request and Repository are. Just like an innocent child, you run into a beach full of colorful shells, but you cant even name the colors.
You are the only one among your friends to play with GitHub. Surfing around the webpages, you feel a little bit lonely and sad.
Facing repositories stared in 5-digit figure and IDs followed by some k, you sighed, “When can I create a famous repo like that? When can I grow to be a top coder like him.”


Level 2: My clothes grow daily more loose, yet care I not. For you am I thus wasting away in sorrow and pain.

You created your first repo to store your old naive code.
You created your_id.github.io and launched your technical blogging journey by hexo orjekyll.
Your first pull request, later your first incoming pull request.
Your first issue, later your first incoming issue.
You came up with an awesome idea, and thanks to Google Search and StackOverflow, you tackled one and another challenge, implemented one and another feature, and your open source project looks just like something.
There are 365 days in a year, and we found exactly 365 contribution tiles in your GitHub profile.
Others are complaining, “How can it be so hard to grow in tech?” You replied back, “Have you ever seen what is it like in GibHub on 4am?”


Level 3: I sought her in the crowd a hundred, a thousand times. Suddenly with a turn of the head, I saw her. That one there where the lamplight was fading.

Thank to Time, my good friend. One day, you found that your followers are somek, your new repository get 100+ watches on day one.
You once contributed code for Apache, you once implemented new features for TensorFlow, you once fixed bugs for Linux.
You gained some fame in Silicon Valley. Many people know you, you also know some of them. You and your friends meet online and offline, you drink and cheers, you talk and laugh.
In the annual QCon San Francisco Summit, you were interviewed by a blonde journalist, “Along your growing path, to whom do you want to say the biggest thanks?” The babe looks familiar, but you can’t remember. Thought for a short while, you said slowly, “Thanks my parents, thanks GitHub”.



如果你想了解更多我和GitHub的故事,请阅读:
我的新博文 《GitHub Pull Request初体验 | 给Hexo博客留言页面添加评论系统》
我的博客 宋哲的国际博客

编辑于 2016-01-07

Github

阳志平:”正是Github,让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。” 在阳志平:如何高效利用GitHub文中介 绍了Github的方方面面,包括一些很有意思的创意,如用Github做PPT,发布婚宴的邀请函等, 可以让人快速拥抱Github,十分不错。

  • How to build a Github,Github一名早期员工介绍Github的历史,5年108名员工无人离职。
  • 阳志平:如何高效利用GitHub,信息量很大,值得深入学习和实践。
  • Got Github,蒋鑫,介绍Github的开源书籍,你真的了解Github吗,如果不了解,可以认真看看此书。

Git

  • Pro Git,Git深入浅出教程,中文版。不过git-scm被blocked了。这是一本开源的书籍,源代码见Pro Git on Github
  • Git Internals PDF,来自Peepcode的开源书籍,源代码已经放在Github。
  • Git Reference,Git参考手册。
  • Linus讲解git,Google大会演讲,Linus介绍他创造git的原因,对比了git和svn。
发布于 2013-12-08
之前有在V2EX上看到有人分享过一个简易教程,图文并茂的,猛击这个网址 git - the simple guide 。非常详细,除了用很Q的图形教程给出操作流程步骤外还提供了不少有用的外联资源。
如果作为使用者的话,大多数情况下是git别人的代码进行查看,或是git做好的源代码configure和install。
如果是作为开发人员,不得不说免费用户上传的代码全部开源,所有人都能够查看,所以别不好意思。
编辑于 2013-01-28
看一百本书不如先玩一次,基本的创建项目,clone,add,commit,branch玩个遍,
遇到困难就去google,等有了感性认识再去读那些理论的东西。
发布于 2013-10-07
补充一点,让 Travis CI 帮你做自动测试,很多著名项目都这么做。
Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community
编辑于 2015-01-04

就我个人来说就讲一个事情了,因为各种原因,自己之前用的电脑和移动硬盘已经坏了。

所以有几个旧的项目(业余做的)历史纪录,甚至代码都找不到了。

所以github对于我来说首先是一个好的云备份平台,现在不用担心自己的机器/硬盘突然坏掉这样的事情发生了。

介绍用法的已经很多了,我不重复了
编辑于 2014-11-17
(为什么?)
下载知乎客户端
与世界分享知识、经验和见解
相关问题
GitHub 上都有哪些值得关注学习的 iOS 开源项目? 77 个回答
GitCafe 这样的代码托管网站在国内的前景如何? 54 个回答
Git 相比 svn 和其他版本管理工具的核心优势有哪些? 27 个回答
如何评价 GitHub 发布的文本编辑器 Atom? 59 个回答
GitHub 是怎么火起来的? 18 个回答
刘看山知乎指南知乎协议应用工作
联系我们 © 2017 知乎

0 0
原创粉丝点击