社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

3D视觉工坊 • 3 年前 • 1550 次点击  

点击上方“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天内无条件退款
 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/64090
 
1550 次点击