【技术浅谈】什么是Github?

  上期小编为大家介绍了如何在Mongoose上面加一个Redis缓存层(对应TypeScript)。这里是上一期文章的链接:灯塔IT学院:【技术浅谈】如何在Mongoose上面加一个Redis缓存层(对应TypeScript)

  本期,小编将为大家介绍一下Github。

  保姆级的程序员做饭指南

  最近一份食谱上了热搜。让大家感受了程序员的浪漫~

  https : //http://github.com/Anduin2017/HowToCook

  虽然听起来挺离谱的,但是有道理啊。程序员也是普通人呀,衣食住行这些俗人的需求,那也是每个程序员的困扰。而这个项目,就来自一位微软有这个困扰的软件工程师。笔者作为程序员,平时搜索菜谱的时候往往被一些“少许”,“适量”等词眼迷惑住。对于新手来说真的很不友好。

  而这份菜谱最特别的地方就在于有程序员特有的严谨和坚持!

  这份保姆级的程序员做饭指南,现在是开放给所有程序员共同维护的,已将程序员的开源的浪漫延伸到了生活当中。那要怎么才能往这份指南上面上传自己的食谱呢?今天我们就利用这个机会学习一下GitHub的使用方式。

  你需要了解什么是Github,什么是版本控制,怎么下载仓库,怎么提交自己的修改。

  什么是Github?

  Github,https://github.com,GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。简单来说,GitHub是一个代码托管云服务网站,帮助开发者存储和管理其项目源代码,且能够追踪、记录并控制用户对其代码的修改。甚至你可以简单粗暴的把它当作一个网盘,用来存储任何东西。

  GitHub是世界顶级开发者的聚集地,在这里你几乎可以找到任何你想要的东西。上面分享有许多优秀、著名的开源项目,在遵守其License的前提下,你可以免费使用、下载这些开源项目。这也是GitHub最为吸引人的地方。

  什么是版本控制?

  要把文档还原到编辑前的状态,大家都是怎么做的呢?

  最简单的方法就是先备份编辑前的文档。使用这个方法时,我们通常都会在备份的文档名或目录名上添加编辑的日期。但是,每次编辑文档都要事先复制,这样非常麻烦,也很容易出错。另外,如果两个人同时编辑某个共享文件,先进行编辑的人所做的修改内容会被覆盖,相信大家都有这样的经历。Git版本管理系统就是为了解决这些问题应运而生的。

  Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复原到以前的状态,也可以显示编辑前后的内容差异。而且,编辑旧文件后,试图覆盖较新的文件的时候(即上传文件到服务器时),系统会发出警告,因此可以避免在无意中覆盖了他人的编辑内容。

  怎么下载仓库

  首先,Git的数据库分为远程数据库和本地数据库的两种。

  • 远程数据库: 配有专用的服务器,为了多人共享而建立的数据库。

  • 本地数据库: 为了方便用户个人使用,在自己的机器上配置的数据库。

  数据库分为远程和本地两种。平时用手头上的机器在本地数据库上操作就可以了。如果想要公开在本地数据库中修改的内容,把内容上传到远程数据库就可以了。另外,通过远程数据库还可以取得其他人修改的内容。

  例如上文提到的食谱仓库,我们可以在它的主页里找到克隆这个仓库到本地的所有方式。

  最简单也是最标准的方式便是用git的命令行git clone https://github.com/Anduin2017/HowToCook.git就可以成功下载到本地啦。

  怎么提交自己的修改

  若要把文件或目录的添加和变更保存到数据库,就需要进行提交。执行提交后,数据库中会生成上次提交的状态与当前状态的差异记录(也被称为revision)。

  如下图,提交是以时间顺序排列状态被保存到数据库中的。凭借该提交和最新的文件状态,就可以知道过去的修改记录以及内容。

  我们为了自己的改动不影响别人,我们需要用下列命令切出一个新的分支(branch)

  git checkout -b <新的分支名>

  当在新的分支上修改完成之后,我们就可以提交自己的修改了。

  git add .

  git commit -m ‘提交修改时要说的话’

  但是这个改动只是本地的改动,要让别人也能看到这个改动还需要推送到远程的数据库里

  git push

  这样该项目的管理员看到之后就可以决定是否要把你修改的这部分代码(菜谱)合并到主分支里。一旦合并成功你的修改就会被所有人看见啦!

  总结

  好啦!这一期就到此结束了,我们下期再见。