如何高效利用GitHub

高效利用Github进行编程探索 通过个人配置、仓库的搜索与筛选、关注star的仓库、浏览README文档、参与开源项目、使用分支与合并、使用Github Desktop以及探索Github Trending等方式,你将能够更加便捷地找到自己所需的资源、学习他人的代码,并与全球开发者社区保持紧密的联系。借助Github,我们可以追踪项目的变更、学习他人的代码、共享自己的作品,甚至找到理想的工作机会。在Github上,你可以找到许多开源项目的issue列表,这些issue常常包含了一些待解决的问题或者新功能的需求。六、利用仓库的分支与合并。 阅读详情

原文地址:http://www.yangzhiping.com/tech/github.html

如何高效利用GitHub

正是Github,让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。

Q1:GitHub是什么

A1:一家公司

github

位于旧金山,由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。

在此之前,它是由Tom与Chris 在本地程序员聚会中,开始的一个用于托管git的项目。正如每个伟大的传奇都开始于一场冒险,Tom在这篇文章我如何辞掉微软30万年薪邀约,创办GitHub中谈到:

当我老去,回顾一生,我想说,“哇,那是一场冒险“;而不是,“哇,我真的很安稳。“

另一位创始人Chris也详细描述了GitHub初创的前因后果,他说道:

Do whatever you want.

于是,在2008年4月10号这一天,GitHub正式成立。

目前看来,GitHub这场冒险已经胜出。根据来自维基百科关于GitHub的描述,我们可以形象地看出GitHub的增长速度:

github

今天,GitHub已是:

  • 一个拥有143万开发者的社区。其中不乏Linux发明者Torvalds这样的顶级黑客,以及Rails创始人DHH这样的年轻极客。
  • 这个星球上最流行的开源托管服务。目前已托管431万git项目,不仅越来越多知名开源项目迁入GitHub,比如Ruby on Rails、jQuery、Ruby、Erlang/OTP;近三年流行的开源库往往在GitHub首发,例如:BootStrap、Node.js、CoffeScript等。
  • alexa全球排名414的网站。

Q2:GitHub风格

A2: GitHub只是GitHub

强调敏捷开发与快速原型,而又的确成功的创业团队,常具备一个重要气质:有自己的文化风格。如GitHub,又如37signals。通过他们的快速开发,向用户证明了团队在技术上的能力,并且时常有惊喜。同时,通过强调特立独行的文化,将对半衰期过短的产品族群的信任转为对GitHub团队的信任。

Gravatars的创始人(对,就是互联网最流行的头像托管系统)、Jekyll(对,它就是我近几年用的博客系统)作者、GitHub创始人,现任CTO Tom在GitHub第一年学到的10大教训、创业学校演讲中谈到GitHub文化的方方面面。我尝试将这种风格总结为以下要点:

  • 专注创作,高创意
  • 运营良好与较高的内外满意度
  • 高利润,较低的融资额或零融资

创业公司多半死在钱上,就让我们先从钱谈起:

高利润,较低的融资额或者零融资

类似于GitHub这样的公司,拿到风险投资很难吗?恰恰相反,创始人PJ Hyett 在Hacker News的一篇评论中提到,自从GitHub创办以来,已与几十个VC沟通过。但是,直到今天,GitHub的融资额还是为零,并引以为豪。让我们看看GitHub官网的自我介绍:

image

运营良好与较高的内外满意度

在Quora上有人问道,GitHub是否寻找被收购?,还是PJ Hyett ,他的回答是:No。

GitHub从一开始就运营良好,员工拥有较高满意度,看看这些不太一样的做法:

  • 每一位GitHub公司的新员工,官方博客将发表文章欢迎。
  • 在GitHub内部,没有经理,需求内容与优先级由项目组自行决策。
  • 选择自己的工作时间、工作地点。
  • 员工来自开源社区。
  • 能开源的尽可能开源。

富有激情、创意的员工使得GitHub得到了社区的广泛认同,从而拥有极高的客户满意度,并从创业一开始就盈利。一份早期的调查表明,GitHub很快成为Git托管首选。

专注创作,高创意

GitHub59名全职员工仅有29名员工在本地工作!不仅仅是工作地点的安排富有创意,GitHub员工Holman, 详细介绍了GitHub的工作方式:

Q3:在GitHub,如何跟牛人学习

A3:在学习区刻意练习

追随牛人,与他们一起修行

修行之道:
关注大师的言行,
跟随大师的举动,
和大师一并修行,
领会大师的意境,
成为真正的大师。

正如这首禅诗所言,与其在墙内仰望牛人,不如直接在GitHub:

  • watch、fork牛人们
  • 对他们的项目提交pull request
  • 主动给牛人们的项目写wiki或提交测试用例,或者问题
  • 还可以帮他们翻译中文

GitHub本身建构在git之上,git成为勾搭大师们的必要工具,以下读物成为首选:

如果希望进一步深入,可以阅读已有中文翻译版的材料:

同样,如果希望了解更多GitHub自身的知识,GitHub官方文档值得推荐:

牛人在哪里?

关于学习的心理学研究,常常会谈到一个术语:元认知、元学习、元知识。是的,关于认知的认知、关于学习的学习、关于知识的知识,你对这些信息的偏好与熟练掌握,会让你在学习一门新东西时更加轻车熟路。对一手信息进行回溯,比如作者、创始人、最初文献出处,总是会让你更容易理解知识。

在学习区刻意练习:借助GitStats进行项目统计

在如何学习一门新的编程语言?——在学习区刻意练习中,我已谈过:

学习编程最好的方式是在学习区刻意练习。

如何进行自我监督?

借助于GitStats,我们能很好地统计自己的每个项目的工作量,从而看到工作进展。

用法如下,

#复制GitStats项目到本地
cd ~/dev
git clone git://github.com/trybeee/GitStats.git
python ~/dev/gitstats/git-stats /youproject public 

以下为生成结果示范:

每周代码提交次数:

github

每天代码提交行数:

github

如果Fork别人的项目或者多人合作项目,最好每人都拥有一个独立分支,然后由项目维护人合并。如何建立自己的分支?

# 分支的创建和合并
# git branch yourbranch 
# git checkout yourbranch    切换到yourbranch

# 开发yourbranch分支,然后开发之后与master分支合并

# git checkout master
# git merge yourbranch
# git branch -d yourbranch    合并完后删除本地分支

如何将牛人的远程分支更新到自己的本地分支?

# 查看当前项目下远程
# git remote
# 增加新的分支链接,例如
git remote add niuren giturl…
# 获取牛人的远程更新
git fetch niuren
# 将牛人的远程更新合并到本地分支
git merge niuren/master

生产力小技巧

codeshelver:给git库做标签

观察的项目如果多了,怎么管理?用codeshelver,安装扩展之后,可以对GitHub项目做标签。

gollum:利用git与github做wiki

gollum是一个基于git的轻型wiki系统。

GitHubwatcher: 监测重点项目

GitHubwatcher适用于通知不频繁的情景。

GitHub官方资源

GitHub官方列出了一些有用的脚本与书签。

社区驱动的安装与配置文件

GitHub中各类配置文件层出不穷,一些常用的:

  • osh-my-zsh:将终端从bash改为zsh之后,可考虑安装社区驱动的zsh配置文件,含有多个插件。可参考旧文zsh与oh-my-zsh
  • gitignore:GitHub官方出品
  • yourchili:服务器各类安装shell,比如安装nginx等。

Q4: 享受纯粹的写作与演讲

A4:回归创作的初始

写作

早在2008年,就有技术图书作者通过Git来写作,以下是示范:

你能想到的技术前沿话题,大多能在GitHub找到相应的培训材料或者开源图书。

个人写作照样适用。在前文理想的写作环境:Git+GitHub+Markdown+Jekyll,我已经格外赞美过这些美好事物了。

暖色调的灯光,足够宽度的工作台,听着清脆的键盘声音,基于Git、GitHub、Markdown与Jekyll来写作,不担心写废与排版,只关注最纯粹的写作,是一种享受。我有时候会想,如果Git、Github、Markdown、Jekyll,再加上Yaml、Json的作者,让这些作者们重新来设计今天互联网基础架构偏文本的部分,会诞生一些什么?

个人博客

借助于Jekyllbootstrap,可以在Github上快速搭建一个基于jekyll的博客系统。

除了这个简单易行的办法之外,还存在一些其他方法,例如:

演讲

借助于GitHub,可以享受更纯粹、更酷的演讲。GitHub 2011年收购Ordered List之后,从此可以通过speakerdeck更好的分享ppt文档。

我们还可以:

  • 使用GitHub著名传教士、Progit作者Scott Chacon开发的showoff
  • 来自开源社区的其他演讲库impress.js

Q5: 代码帮你找工作

A5:GitHub简历很诚实

NumEricR(非GitHub工作人员)基于GitHub Pages功能做了一个简历生成器,使用极其简单,登陆网站GitHub简历生成器,填入你的GitHub网站用户名即可。

fredwu是Ruby中文社区活跃份子,他的开源项目angel_nest,一个天使投资与创业者对接的网站,适合Ruby初学者升级为Ruby中级开发者时学习,也在Hacker News上被热烈讨论过,让我们来看看他的简历:

http://resume.GitHub.com/?fredwu

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

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

  • GitHire:通过它,可以找出你所在地区的程序员。
  • Gitalytics.com:通过它,能评估某位程序员在GitHub、LinkedIn、StackOverflow、hackernews等多个网站的影响力。

Q6: GitHub还在影响一些什么

A6:让计算机增强人类智慧

很多年前,在某个名声显赫的学府中,两位先后拿过图灵奖的牛人有一段对话:

  • 牛人A:我们要给机器赋予智慧,让他们有自我意识!
  • 牛人B:你要给机器做那么多好事?那你打算给人类做点什么呢?

这段对话来自《失控》。牛人A是明斯基,他最喜欢将人类看做有血肉的机器,他的框架理论成为认知心理学、人工智能入门基础。牛人B则是恩格尔巴特。当明斯基1961年发表他著名的文章人工智能走向时,恩格尔巴特还籍籍无名。直到次年,恩格尔巴特发表宏文:人类智力的增强:一种概念框架。提出不同于明斯基的另一条增强人类智力的道路:不要尝试发明自动打字的机器,而是尝试发明鼠标,并且他真的发明鼠标成功了!

从近些年的发展来看,仍然是明斯基占上风,但是,三十年河东,三十年河西,明斯基的人工智能方向又有多少年没有大突破了?相反,来自恩格尔巴特的群件、集体智慧等思想,逐步成为步入Web2.0时代之后的共识。无关对错,可以说,恩格尔巴特为增强人类智力,提供了可行的框架。与其去发明聪明的、昂贵的、功能一体化的智能机器人,还不如发明类似于鼠标这样笨笨的、廉价的、功能单一的人类智慧服务单件。明斯基的机器人很容易陷入死胡同,没有上升到哲学的高度。现在慢慢又回到恩格尔巴特这个方向来了。比如现在IBM开始宣传的认知计算。

从git与GitHub设计与解决的问题本质来看,明显加速了代码生产流程,促进了卓越智力产品的诞生。这就是一种典型的web2.0对智力生产流程的改良与人类智慧的增强。同样,某种意义上,小说写作网站也起到类似作用。但是,学术界尤其是社会科学类的智力产品生产似乎还停留在一个古老阶段。在开源领域,好想法层出不穷,极客影响极客,最终产生的是酷玩意。这些酷玩意抛弃浮华,直奔问题本质。那么,有没有科学界的GitHub??

类似问题层出不穷,以下为其他领域产品不完全名单。

学术研究

数据

科学计算

  • opani:雏形中,支持R、Python等多种。

教育

  • OpenStudy:一个社会性学习网络,通过互助来更好地学习,主题涉及到计算机、数学、写作等。
  • openhatch: 通过练习、任务等帮助新手更好地进入开源社区

Q7:除了GitHub,还可以选择什么?

A7:nil

因为进化的需要,多数裸猿存在选择强迫症:哪种程序语言更好?哪个web开发框架更好?当然,最令宅男技术男们羡慕的问题是,高白瘦御姐还是青春小萝莉好?:D

除了GitHub之外,

  • 中国山寨品是不是更好?(为什么不写他们名字,你懂的,山寨品总是善于争论谁是第一个山寨的,各自的排名先后:D)
  • 免费的BitBucket是不是更适合Python程序员?
  • 作为一名折腾族,我不自己搭建一个gitlabhq,是不是对不起自己?

我们可以理解,正是因为无数条分岔路口,让人类不再受制于某种基因、特定疾病、独裁家族,从而拥有无限的可能。但是,这种选择强迫症与远古时代可怜的信息量相比较,

  • 今天这个大数据时代,它还会有助于人类作为族群的整体进化与作为个体的幸福吗?
  • 今天一位一线城市30岁大学毕业生经历的选择与孔子整个一生经历的选择,纯论数量,谁多谁少?

生命如此短暂,为什么总要将青春浪费在不断的选择之中呢?罚你,回头阅读心理学家施瓦茨(Barry Schwartz)的TED演讲:选择之困惑——为何多即是少,1百遍啊1百遍。请记住施瓦茨的演讲要点:

  • 更多的选择不代表更多的自由;
  • 更多的选择导致决策的延迟和降低的满意感;
  • 快乐之秘诀,在于降低自己的期望值。

最后,让我再抒情一把吧,

美好的事物总是离不开被墙的命运,让我们静静地期待那一天的来临… 也让我们在各自行业的努力,让下一代、下一代、下一代…(希望N<=1,如果N>=4,我做鬼也放不过你们!)不再拥有这一天。

拼多多/Temu反爬参数逆向踩坑记:从浏览器调试到补环境完整复盘 本文详细解析了拼多多/Temu反爬参数`anti_content`的逆向工程实战,从浏览器调试到补环境完整复盘。通过JavaScript逆向技术,拆解关键函数定位、反混淆算法还原及补环境技术应用,帮助开发者突破电商平台复杂反爬系统,提升数据采集效率。 阅读详情

相关推荐

AI数字人短视频数字人口播数字人分身建模流程全解析

在人工智能与计算机图形学蓬勃发展的当下,数字人建模作为打造虚拟数字人的核心环节,其流程复杂且精妙,融合了多种前沿技术与创意构思,为栩栩如生的数字人形象奠定基石。​。

2403_87518095的博客 1447

GitHub的诞生背景与安装过程

1.诞生背景 Git 属于分散型版本管理系统,是为版本管理而设计的软件。 Linux 的创始人 Linus Torvalds 在 2005 年开发了 Git 的原型程序。 当时,由于在 Linux 内核开发中使用的既有版本管理系统的开发方许可证发生了变更,为了更换新的版本管理系统,Torvalds 开发了 Git。 Linux 内核的更新速度在全世界也算首屈一指。因此,势必需要一个功能强、性...

weixin_43222122的博客 646

EtherCAT-7 从站代码移植-SPI

STM32F103 + AX58100,从站代码移植。

tianya_xuan的博客 3568

一、Git 与 GitHub 的来历

Git 与 GitHub 的来历 Linux 之父 Linus 在 1991 年创建开源的 Linux 操作系统之后,多年来依靠全世界广大热心志愿者的共同建设,经过长足发展,现已成为世界上最大的服务器系统。系统创建之初,代码贡献者将源码文件发送给 Linus,由其手动合并。这种方式维持多年后,代码量已经庞大到人工合并难以为继,于是深恶集中式版本控制系统的 Linus 选择了一个分布式商业版本控制系统 BitKeeper,不过 Linux 社区的建设者们可以免费使用它。BitKeeper 改变了 Linus

王兆镇的博客 1818

Python实战:打造学生信息管理系统

通过本教程,我们构建了一个简单的学生信息管理系统,实现了基本的添加、删除、修改和查询功能。当然,这个系统还有很多可以改进和扩展的地方,比如添加用户界面、增加数据持久化功能、支持批量操作等。简介:本文将介绍如何使用Python编写一个功能齐全的学生信息管理系统,包括添加、删除、修改和查询学生信息的基本操作。学生信息管理系统是学校日常管理中不可或缺的一部分,它能够帮助管理人员快速、准确地管理学生信息,提高工作效率。为了实现上述功能,我们可以设计一个包含学生信息的字典,并使用函数来封装各个操作。

铭渊老黄 1489

从点云到舱口尺寸:船甲板舱口检测的算法实现

本文提出了一种从船甲板激光扫描点云中自动检测舱口尺寸的算法。通过数据预处理(降采样、去噪、平面分割)后,采用甲板投影轮廓法将3D点云转换为2D图像,利用双次闭运算解决扫描碎片化问题,通过轮廓树检测内轮廓识别舱口。算法最终能稳定检测出三个主要舱口的长宽尺寸、面积和位置信息,矩形度超过0.89。该方法克服了扫描稀疏和围壁结构复杂的问题,参数可调性强,适用于工程实践。关键创新点在于将舱口识别转化为图像中的"洞"检测,而非直接处理3D几何特征。

点云兔子的博客 146

github起源

GitHub是一个基于互联网的代码托管平台,于2008年4月10日正式上线。它的起源可以追溯到2005年,当时Ruby on Rails框架的创始人之一DHH(David Heinemeier Hansson)为了更好地管理他的开源项目,创建了一个名为"git"的版本控制系统的前端界面,这个界面最初被称为"GitHUB"。GitHub的成功不仅在于提供了一个便捷的代码托管平台,还在于它的开放性和社区性质。随着时间的推移,GitHub逐渐吸引了越来越多的开发者加入,成为一个全球范围内最大的代码托管平台之一。

jiang_changsheng的博客 902

OpenHarmony 显示Display驱动全栈解析:DisplayLayer + Gralloc + Gfx 三位一体,打造高性能图形底座

OpenHarmony Display显示驱动模块是系统图形渲染和显示功能的基础组件,负责管理显示设备、图层渲染、内存分配等核心功能。该模块采用HDI(Hardware Driver Interface)设计架构,为上层图形服务提供统一的显示能力接口,实现了显示设备的初始化、图层管理、内存分配与映射、硬件加速等关键功能。DisplayLayer:负责显示图层的管理, 包括图层创建、显示属性设置、图层填充及刷新等操作;

m0_67505153的博客 315

全球最大的开源项目管理基地 GitHub 的魅力

GitHub不仅为开发者提供了代码托管、版本控制和项目协作的强大工具,更是一个汇聚了全球程序员和技术爱好者的社区。在这个平台上,数以百万计的开源项目不断地推动着软件开发的边界,促进了知识共享和技术传播。本文将深入探讨GitHub的魅力所在,分析其在开源生态系统中的重要角色,以及为什么它成为无数开发者和企业的首选。

Lion_Long的博客 2万+

UDS19 03 和19 04服务--答疑

UDS 1903服务(reportDTCSnapshotIdentification)用于获取ECU中存储的故障码快照标识信息。该服务返回DTC编号及对应的快照记录编号,为后续使用1904服务读取详细快照数据提供依据。请求报文为"1903",响应报文格式为"5903"后接DTC编号和记录编号列表。该服务需在非默认会话模式下执行,且清除诊断信息会删除相关快照记录。1903服务是读取DTC快照数据的基础步骤,可帮助确定ECU中存储的故障快照情况。

汽车软件开发 455

最新Codex接入DeepSeek官方API教程(无需cc-switch)

最新Codex接入DeepSeek官方API教程(无需cc-switch)

猿小白的博客 946

玩转GitHub,如何高效利用GitHub提升自己

和逛微博、朋友圈、空间一样逛GitHub 你在空闲时间逛微博、朋友圈、空间,人家没事的时候逛GitHub ,看看最近有哪些流行的项目,久而久之,这差距就越来越大。那么我们如何像逛微博、朋友圈、空间一样逛github呢? - 首先,和微博、朋友圈、空间一样,你要想在你的朋友圈看到别人的动态,首先你的加人家好友对吧。所以首先我们得关注一些行业的大牛,例如关注Jake Wharton 关注过后,我们就可以在github首页看到大神们star、fork等动作,可以了解大神们在此时此刻关注或者开源了那些优秀的开源项

水月流萤的博客 1683

【Python图像处理局部放大】输入图像,选择两处不同的区域进行放大操作,然后将原始图像、处理后的两个区域以及标记合成新图像进行展示

Python图像处理与区域放大连接标记:选择特定区域并对其进行放大操作,然后将原始图像、处理后的两个区域进行标记后的新图像保存到文件中。

qq_35831906的博客 2243

如何高效利用 GitHub

正是 Github,让社会化编程成为现实。本文尝试谈谈 GitHub 的文化、技巧与影响。 Q1:GitHub 是什么 Q2:GitHub 风格 Q3: 在 GitHub,如何跟牛人学习 Q4: 享受纯粹的写作与演讲 Q5: 代码帮你找工作 Q6: GitHub 还在影响一些什么 Q7: 除了 GitHub,还可以选择什么? Q1:GitHub 是什么 A1:一家公司...

weixin_34159110的博客 206

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

开发者如何高效利用GitHub

推送里面看到的,写的还真不错,呵呵。 http://www.cocoachina.com/gamedev/misc/2013/0305/5763.html       发者如何高效利用GitHub 发布于:2013-03-05 11:38阅读数: 3313 GitHub是开发人员经常逛的一个地方,那么如何在这么大一个内容库中披沙拣金,找到自己需要的资源呢?这就涉及到如何高效利用G

且行且看 916

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何高效利用GitHub?

正是Github,让社会化编程成为现实。本文尝试谈谈GitHub的文化、技巧与影响。

wlq_567的博客 374

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 设计模式 - 适配器模式、外观模式
下一篇: 都用WebKit也并不意味Web的统一:WebKit的前世今生
G机器猫
博客等级 码龄16年 106粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值