新手该如何使用 GitHub?(超详细)

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

编辑:3D视觉工坊

https://www.zhihu.com/question/21669554/answer/1230957628

本文仅作为学术分享,如果有侵权,会删文处理

新手该如何使用 GitHub?

作者:程序员吴师兄
https://www.zhihu.com/question/21669554/answer/1230957628

实名反对前排所有答案,一个个都没回答题主的问题!新手看了能有什么收获??!!

作为一名在 GitHub 上收获 60k star 的程序员来说,我觉得有必要认认真真的来回答一下。

我的 GitHub :https://github.com/MisterBooo

很好,对于编程新手而言,如果一开始就知道利用 GitHub 来提高自己的技术水平,那一定会进步很快。

题主问了两个问题,我依次来回答,希望对题主有帮助。

一、如何参与项目

如果你想参与某个开源项目,你首先要做的是先了解这个项目,最好的方式是先仔细阅读它的 README。

一个标准的 README 应该包含以下内容:

  • 项目背景

  • 安装

  • 使用

  • Badge

  • 相关项目(可选)

  • 主要项目负责人

  • 参与贡献方式

  • 开源协议

通过项目背景可以了解这个项目动机和背景是什么,是为了优化什么问题还是因为市面上其它的项目太渣渣。

然后通过 安装使用 知道项目如何运行起来,方便查看细节。

最后就需要查看它的 参与贡献方式 ,有的是希望你提交 issue,有的是直接 push,有的是加群一起协作。

题主还问到 「核心的一些架构我暂时是力不从心的,那我还能为这个项目做什么呢」,这一点你不用担心,哪怕你只是修改里面的一个错误单词,一句错误的语法对于整个项目来说也是很有作用的。

这不是开玩笑。

一个 4 岁小女孩就给 Linux 内核贡献提交。

链接:https://www.reddit.com/r/linux/comments/2pqqla/kernel_commit_4_year_old_girl_fixes_formatting_to/cmzfvpl/

我们看看她修改了什么

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=690b0543a813b0ecfc51b0374c0ce6c8275435f0

在里面可以看到

就是改了一个 「 - 」字符而已。

没有用过 git 的同学可能看不懂这个修改,即使用过的同学刚开始也觉得一脸懵逼,git 的 diff 修改会在前面显示 - 和 + 符号,这样看就知道了,实际上就增加了一个字符 - 。

为什么要修改这个字符?

我们看到,正常情况下「--------」和上面的字符串是对齐的,但是刚好修改的那行是没有对齐的,所以是有问题的,是不严谨的。

虽然是一个很小的修改,但是这个修改的意思非常大。

1、Linux 内核可以让所有人参与进来。

2、Linux 内核非常严谨,只要有错误,任何人都可以修改它。

说说这个修改的由来

在修改的提交记录里面,是这样写

他的侄女发现那个 「 s 」字母很孤单,用她的话说是不开心,加上「 - 」后就显得开心了。

非常细心的一个举动,这个修改在 riddit 上,很多人在激烈的讨论,有人认为这个修改没有什么作用,不就是一个字符而已,但是很多人对这个小女孩产生钦佩,觉得他是一个非常认真仔细的人。

希望这个小女孩的故事能够帮题主解惑。

二、编程初学者如何在 GitHub 寻找适合自己的小项目

GitHub 成立于 2008 年,截止到 2015 年,GitHub 已经有超过两千八百万注册用户和5700万代码库。

对于新手而言,要从这浩瀚的代码库中找到适合自己小项目无异于大海捞针,如果有个类似于 hao123 那样的导航网站就好了!

登登登,还真有,一个国人建立的开源项目:HelloGitHub,致力于分享 GitHub 上有趣,入门级的开源项目,对于编程新手而言十分友好。

地址:https://github.com/521xueweihan/HelloGitHub

在项目中,内容每月 28 号以月刊的形式更新发布,主要是面向编程新手、热爱编程、对开源社区感兴趣人群的项目。更新的内容主要包括:各种语言的流行项目、入门级项目、让生活变得更美好的工具、书籍、学习心得笔记、企业级项目等。

这些开源项目大多都是非常容易上手、很 Cool,能够让你用很短时间感受到编程的魅力和便捷。从而让大家感受到编程的乐趣,动手开始编程。

这些项目都有一些共同的特征,那就是很酷,非常容易上手的项目,编程的魅力和便捷体验起来就是这么简单。

对于编程新手而言,不管你是学 Java,还是学 Python,哪怕你是编程小白,不懂代码,也总能在里面找到适合你的项目。

这个新手项目还不够?那在推荐一个类似但更有趣的开源项目:GitHubDaily。

链接:https://github.com/GitHubDaily/GitHubDaily

GitHubDaily 每日不定时推送一批 GitHub 上优秀的开源项目给开发者, 帮助开发者们发现当下最火的开源项目, 令开发者们得以掌控技术脉搏, 扩大自己的技术视野, 并从开源项目的学习中获得技术能力的提升。

它分门别类的整理了好多有趣的项目,适合新手在零碎时间去阅读学习,了解 GitHub 的生态。

以上就是我的回答,希望新手都能通过合理的使用 GitHub 来提高自己的技术水平,如果你觉得这个回答能够解决题主的问题,不妨支持一下,同时根据知乎的算法机制,会有越来越多的优质答案出现在你的时间线上。

作者:九章算法
https://www.zhihu.com/question/21669554/answer/790851463

即使作为编程新手,刚刚接触GitHub,也建议你从最简单的项目入手,而不是单纯研究大量理论。

这个3000+ starts的优(宅)秀(男)项目:komeiji-satori/Dress就非常适合初学者Pick。

作为全球最大同性交友平台,这个项目里集结了大量的女装大佬。

而且,这应该是 GitHub 最低准入门槛项目了,就算不会写代码也都可以参加。你可以在这里学习 GitHub 的用法,从克隆项目、创建分支、提交和同步修改,到合并分支请求的整套流程,只需一次即可熟悉 Git/GitHub 的使用。

当然,你还要事先准备至少一张你的女装照。

好了,接下来分享一些正经的。

基于这个项目,你就可以马上开始你的实践了。

第一步:打开官网:https://github.com

注册一个帐户。

第二步:创建仓库

填写仓库的名字和描述。

创建好了之后,点击“Branch master”,创建分支——在文本框中输入分支名称和描述,然后点击蓝色部分确认。

第三步:点击创建一个新文件

输入想要提交的代码以及下方的文件名和描述后,点击最下方的Commit new file即可。

第四步:修改&保存修改

在github上,提交&保存修改的操作是commits。每一次的commit都会被记录,可以被其他用户查看。

点击铅笔图案即可修改,修改后点击Commit changes即可。

第五步:提交Pull request

点击New pull request,选择你所做的分支,编辑你想修改的内容,经过与原来内容的对比,确认后提交请求。然后@特定的人或者团队,请求他们review,并反馈给你(还可以请求把你的代码加入他们的分支)。

第六步:合并修改历史

点击绿色按钮,将自述编辑合并到Branch master。

合并成功后可以删除该分支。

应用:

1、查看别人的代码or项目,给其点赞评论或关注

点击“gist"

然后选择“All gists”,可以查看别人写的代码。

蓝色框“commonts”、“stars”,可以评论或跟踪关注别人的代码。

2、clone别人的代码,修修改改,然后变成自己的代码

点击别人代码右上方的”forks”,然后点击“Embed”,选择Clone,即可克隆保存别人的代码。点击Download,可以下载他人代码到本地。

3、查看别人代码的修改历史

点击“Revisions”即可查看修改历史,以及修改前和修改后的对比。

当然,除了这些基础的功能之外,GitHub 更是一个强大的宝库,怎么发现宝藏,是有诀窍的。

寻找 Demo 节省时间

当我们在工作中需要快速掌握和使用新的技术,又没有太多精力从头开始学习,我们就可以在 GitHub 上寻找相应的 Demo,在简单了解原理、稍作尝试之后,引入到项目中。

你可以按照技术栈的关键字搜索,并根据更新时间进行排序,以查找是否有合适的 Demo。

寻找脚手架:加快前期开发

有时候,我们需要寻找一个合适的脚手架来帮助我们做出想要的东西,

这时候我们可以,直接使用技术栈 + boilerplate 或者 starter 等关键词进行搜索,如 react boilerplate。如果其中找到的组合技术栈不大符合自己的要求,那么再加上相应技术栈的关键字,如 react redux boilerplate 即可。

寻找 awesome-xxx:探索可能性

在Github上,有一些前人总结整理好的宝库,比如Awesome-xxx 系列。

只要有一定知识广度的领域、语言、框架等,都有自己的 awesome-xxx 系列的项目,如 awesome-python, awesome-iot, awesome-react 等等。在这样的项目里,都以一定的知识体系整理出来的,从索引和查阅上也相应的更为方便。如果你想学习一些新的东西,进入一个新的领域,那就搜索 awesome xxx 吧。

学习资源

GitHub 上拥有大量的学习资源,从各类文章到各种笔记,还有各式各样的电子书。如:

  • 搜索:类型 + 笔记,如 操作系统 笔记 就能找到一些操作系统相关的笔记。

  • 搜索:书名 就能找到一些和这本书相关的资源,如 重构 改善既有代码的设计。

GitHub 上还可以搜索到各种 未经授权 的英文书籍的翻译,或是各种电子书的 PDF 版。还有一些库,可以提供相应的学习资源,如 free-programming-books-zh_CN,即免费的编程中文书籍索引。

与此同时,Github上不乏简单的新手项目,实践练手再好不过

ZKEACMS:一个可视化设计的CMS系统(内容管理系统)。页面布局是可以直接在线设计,页面也是可以在线设计,编辑的,模板是可以直接在线编辑的,样式还可以可视化直接编辑,内容板块可以直接从现有板块中快速添加。是一个非常适合新手跟进的优质项目。

textgenrnn:一款基于 Keras/TensorFlow 的 Python 3 模块,可以用来创建字符级的循环神经网络。

JEESNS:一款基于JAVA企业级平台研发的社交管理系统,依托企业级JAVA的高效、安全、稳定等优势,开创国内JAVA版开源SNS先河。数据库使用MYSQL,全部源代码开放。

最后,祝你寻宝愉快~~

推荐阅读:

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值