gumusservi

  以前,我们做小组作业的形式一般是分模块,然后各自写各自的部分,再放到一个人的电脑上一起运行。说实话那时候是没觉得什么不方便的(因为都是C/C++代码,复制粘贴一下即可,也不需要配置环境什么的)但是呢这学期开始接触到了Android Studio/小程序这种,就不再是简单地开一个文件就行,而且由于疫情的关系大家都在线上学习,远程交流起来就更加的不便,这时候就需要使用源代码管理工具来进行团队协作。

  下面我将介绍一款源代码管理工具——Github。

  由于我们小组在做项目时还未用到Github,因此以下内容来源于网络以及我自己的一些感受(在做项目时遇到过的问题)。

 

——————————————————————————————————————————

  Github https://github.com/

 

什么是Github

  Github是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名Github。Github于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。

  首先来看看Git,Git是一款免费、开源的分布式版本控制系统

    版本控制系统(version control system)像个数据库,它会记录所有对项目文件的更改(比如一个文件,前天加了三段文字,昨天删了一句话,今天改了几个词,这三个版本历史都能保存下来)。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

    使用版本控制系统可以协同合作(多人编辑文件或代码而不出错),版本存储(你改动的每一版本都保存下来,如果改错可以回到之前的版本,如果想加上删除的内容也可以返回去找,也可以对比现在和之前的版本,看改了什么),文件备份(服务器和本地都有完整的历史版本,如果服务器坏了,本地还有一份完整的历史记录)。

  这就好比软件工程课写项目文档时,一般项目经理会直接布置一溜的任务,分配给每一位成员,而在写的过程中会因为多次修改而产生很多不同版本的文档,由于数目多,项目经理不一定会全都发在群里,后续写文档的时候如果要参考前面的某一个文档,这时候成员就要单独问项目经理要这个文档。而现阶段处于线上学习,很多同学可能不经常看消息,这就会导致得到所需文档的不及时,从而影响到这一位以及后面成员的写文档时间,很可能会拖慢整个项目的进程。

  如果使用版本控制系统的话,各个版本的文档就可以一目了然的显示,所有成员都可以远程同步协作,再好不过啦。这么一看项目经理担任的貌似就是这样一个版本控制系统的角色:)但他是需要一起写文档的人,所以还是使用版本控制系统方便又智能~还能避免文件丢失、团队协作不同步等问题。

  Github是用Git做版本控制的代码托管平台

    代码托管:可以单纯地把它当成一个网盘放你的代码,同时使用Git功能记录你的代码历史。当然除代码外还能放其他文件。

    学习优秀的开源项目:学习别人优秀的源码,写代码之前看别人是怎么写的,看论文也可以上Github找找源代码,还能找一些开源的软件、插件用。

    当资料库:可以查资料,Github上有总结好的面试宝典、入门指南、技术分析、论文合集、课程资料等。这些博客、公众号上有的内容Github上也有,甚至更全面。

    多人协作:多个人要一起写个程序,一起写本书,一起翻译一篇文章等,用Github可以管理项目保证你们的文件同步,写好后提交合并成一个完整的项目。

    搭建博客:基于Github Pages搭建属于你的博客,你可以随心所欲的定值自己的样式,这是一个属于你的空间。

    社交:就像微博、知乎一样,在这个网站你可以关注(following)别人,也可以有自己的粉丝(followers),看到好的开源项目可以给他点赞(star),你有什么想法还可以给这个项目改进(fork)。

    个人简历:如果你的Github上有不错的项目,或者你改进过别人的项目,这些都能反映到你的账号上。Github可以在一定程度上反映你的能力,如果你的项目点赞多,还有很多粉丝关注,你就像一个大V一样,这就是你的另一份简历。

    写作:Gitbook可以写电子书。

  简单总结一下,Github就是一个集百度网盘、慕课、企业微信、博客、微博等为一体的平台。由于这篇博客主要介绍的是源代码管理工具,我们就来看看代码托管和多人协作这两个功能。

  代码托管就比如说在机房上课写了点什么,没写完想带回宿舍继续写,就不用再麻烦的拷U盘啦,U盘不仅不方便还容易丢(别问我为什么)这时候只需要git push/pull一下就能同步了。有点类似坚果云这个软件的功能,在手机和电脑上同时安装,就可以实现自动同步=v=而且可以记录代码历史,非常适合做复盘。而且,有时候改了一点代码想试试看能不能别的方法, 但是失败了,就可以用Git回滚之前能运行的版本,懒人福音!

  上了网课才发现,多人协作实在是太重要了,平时在学校做项目,宿舍里嚎一声,如果有拖延症就天天催,总是能按时交的。而网课时期,不回消息就根本找不到人=。=当然了,用Github也不代表就一定会看消息,但至少是一个约束吧,就像再爱睡觉的同学也会先在学习通完成签到一样。也就是将Github作为一个做项目之前一定会打开的平台,这样就可以清楚地了解到别的同学做到哪儿了,我的内容有没有完成。而且,在做项目的初期团队会讨论出很多内容,每个成员都会集思广益,在讨论结束后往往需要不断地往前翻聊天记录(如果是腾讯会议还需要一个专门做记录的同学)才能了解到完整的内容,所以很多同学在后期做开发的时候,甚至都不了解整个项目究竟要做哪些东西,整个流程都是云里雾里的。使用Github可以帮助所有成员了解项目的概况及进度。

  知乎上有人将Git和Github的关系理解为:

    Git是一张弓,Github是靶子,你的源代码是箭。(来自Jacob Peng

 

如何使用Github

1.学习资源

  ①知乎上一位网友分享了《progit》这本必看的书,至少阅读:第一、二、三、五章,即可入门

  链接:英文版  中文版

  ②Google推荐的Udacity平台上,《如何使用Git和GitHub》这门课非常详细~网页版配有中文字幕,值得一看!

  链接:Udacity平台

  ③可以按照《Git与GitHub入门实践》操作一遍,学习在GitHub上创建仓库并克隆仓库到本地/完成一次完整的项目修改、提交、推送操作等基本使用入门,此课程难度为简单,适合没有经验的新手,可以快速掌握Git和GitHub的基本操作。

  链接:Git与GitHub入门实践

  ④由于网上已经有非常丰富的Github和Git安装配置及使用教程,因此我在这里放上一些链接,不多加赘述,以供参考~

  如何使用Git和GitHub来管理自己的代码?

  GitHub入门教程

  https://www.cnblogs.com/xiaocen/p/3727324.html

  如何高效利用GitHub

  使用GitHub进行团队合作

  总而言之,如果非常想要学习Github的话在网上有很多很多的教程可以看,关键还是要有学习的热情和坚持的恒心,以及,多积累,多实践!!

 

2.一些按钮的介绍

(1)主界面

  • Pull requests想参与别人的项目,或想改进别人的项目,改进后需要用Pull request提交申请。
  • lssues发现别人项目的bug,或者有什么问题,可以提一个lssue;别人也可以给你的项目提lssue反馈问题。lssue追踪各种想法,增强功能、任务、bug,有点像评论功能。
  • Marketplace应用商店,里面有免费/收费的开发工具。
  • Explore可以理解成软件里的发现页,点进去会推荐一些和你相关的话题、项目、新闻等。
  • Repository仓库,也是项目。可以理解成一个大的文件夹,或者笔记本。一个项目对应一个Repository。

(2)个人界面

  • Projects项目板,project-boards的简写。通过项目板可以灵活地创建适合需求的自定义工作流程。
  • Star点赞功能,这里作动词,它叫star是因为点赞图标是星星,点赞会记录在个人动态里,由于Github没有收藏功能,所以Star也可以用来收藏。
  • Follow关注。点击Followers看看谁关注了他,点击Following看看他关注了谁。

(3)项目界面

  • Watch关注观察,也就是既可以关注(follow)一个人,也可以关注(watch)一个项目,关注内容的动态都会显示在主页面。
  • Fork将Github的某个特定仓库的所有文件原封不动地赋值到自己的账户下。想改进这个项目加点儿自己的东西,就可以Fork一下再修改,不影响原作者的仓库。

(4)其他

  • Gist主界面点击头像可以看到Your Gist。如果没有项目,只是单纯地想分享一些代码片段,就可以写Gist。
  • README.md每当创建项目、初始化时,都会自动生成README.md文件并显示在仓库首页。一般都是使用Markdown语法(准确来说是Github Flavored Mardown(GFM)语法)来描述项目的概要、使用流程、许可协议等。

 

——————————————————————————————————————————

参考链接:

 

     https://zhuanlan.zhihu.com/p/139494507

  https://www.zhihu.com/question/20070065/answer/16021641

     https://www.zhihu.com/question/20070065/answer/130290509

     https://www.zhihu.com/question/47681342/answer/133642565

     https://www.zhihu.com/question/20070065/answer/210154219

  https://www.zhihu.com/question/21907548/answer/95284202

 

  总的来说,Github的功能还是异常强大的,相信用好它会给学习和工作带来巨大的便利~在写这篇博客的时候我也是第一次尝试去了解Github,如果有什么不对的地方还请多加指正!

  以上就是我分享的全部内容,希望有所帮助,感谢观看~

 

分类:

技术点:

相关文章: