背景
Git Hub作为一个专业的开源网站,基于版本控制软件Git来实现各项功能,对于程序员来说是交流经验与学习开源项目的天堂。
但由于国内外的学习方式、编程思维均存在较大差别,导致至今仍有很多国人对于Git Hub的使用感到不解。对于如何从Git Hub上寻找符合需求的开源项目并进行阅读学习,如何为他人的项目贡献自己的力量,以及如何与其他程序员进行交流,多数人还是不了解。
笔者也经历过很长一段的迷茫期,现在才敢写出一些个人心得,以帮助大家少走弯路。
前提条件
- 会基础Git命令、make命令
- 已安装Linux/Unix系统,Mac应该也可以
- 会使用基础bash命令
- 拥有自己的Git Hub账户
搜索相应主题的开源项目
步骤
-
打开浏览器,输入网址
https://github.com/
打开Git Hub; -
登录个人Git Hub账户;
-
点击网站首页顶部的
Explore
按钮; - 在左上方的探索栏输入想要寻找的主题,如
C++
; - 在页面左侧的搜索结果菜单栏选择类型及语言,如
Repositories
+C++
; - 在页面右侧的搜索结果上方选取筛选条件,如
Fewest stars
(笔者水平太低,就先从最简单的项目开始学习); - 点击想要查看的项目,如cppworkshop(这个似乎是某位国外老师给学生布置的编程作业);
- 阅读项目下方的README.md文档说明,了解作者写的项目概况;
- 根据此方法搜索自己想要的项目。
从Git Hub上下载项目源码并编译执行
前面我们已经找到了自己想要的项目,现在就可以获取项目的源码,并在本地计算机上编译项目并运行了。
步骤
- 点击Git Hub项目根目录右上方的Clone or download按钮(注意!只有在根目录才会显示按钮);
- 在弹出的小窗体里,点击网址栏(如https://github.com/apmanol/cppworkshop.git)右侧的按钮进行网址复制;
- 打开Linux系统的终端窗口(输入命令行的窗口);
- 输入git命令,从Git Hub上拉取项目;
- 进入本地项目的目录,查看根目录下的README.md文档,了解项目概况,可能包含编译执行等操作的重要说明;
cd cppworkshop/ make distclean make debug=1
- 根据说明执行编译操作;
./bin/memerr
- 执行项目;
8. 对项目进行更深入的学习,如阅读源码、修改源码等。
Fork别人的项目并申请Pull Request
有时候,我们不仅想查看他人的项目,并且希望加入到项目开发中,但由于缺少相关权限,只能以外来者的身份Fork项目,在本地进行修改,提交到个人仓库,再向原作者申请Pull Request。
步骤
- 在Git Hub上搜索自己感兴趣的项目;
- 点击项目右上角的Fork按钮,将项目添加到个人仓库;
- 在本地计算机上,使用前面所讲的操作,从个人仓库中拉取Fork来的项目(注意!是自己的Git Hub网址,不是原作者的项目网址,名称有区别);
git clone https://github.com/gkzscs/cppworkshop.git
4. 在本地进行项目修改;
5. 使用Git命令提交修改到自己的Git Hub仓库,并添加修改内容注释;
git add <files>
git commit
git push
Git Hub网页中,进入自己Fork来的项目目录,并创建Pull Request(较为繁琐);
等待原作者的确认(可遇而不可求)。
Git Hub社交
事实上,Git Hub提供了简单的社交功能,它不仅仅是一个开源项目仓库。
你可以与其他程序员互发邮件,相互关注,各自Fork,共同学习,成为朋友……
步骤
- 打开Git Hub网站首页;
- 点击顶部菜单栏中的Explore按钮;
- 在左侧搜索栏中输入想要搜索的用户名称,如Chen;
- 从搜索结果左侧的类型中选择Users,即用户;
- 可点击右上方的筛选按钮Sort,选择筛选条件,如Fewest followers;
- 从搜索结果中选择想要查看的用户,点击其名称,如CJ.Chen;
- 点击用户头像下方的Follow按钮,类似于关注功能;
- 用户下方还有地址、邮箱等联系方式,可以尝试哟;
- 可以在个人信息中查看Following,且以后你就可以在自己的个人首页中接收到你关注的人的动态消息了。
关于我
我是一位喜欢创新、乐观向上的少年
爱好是看书、踢足球、玩LOL等
喜欢我的文章的朋友,可以添加个人微信:CS-huo
有问题可以相互探讨,共同学习!
————————————————
版权声明:本文为CSDN博主「gkzscs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gkzscs/article/details/103582277