使用Github的10个实用技巧

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。除了代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论、文本渲染、在线文件编辑、协作图谱(报表)、代码片段分享(Gist)等功能。目前,注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby、jQuery、Python等。使用Github已经有一段时间了,下面总结一下Github的10个实用技巧:

编辑代码

先从地球人都知道的代码编辑开始:在GitHub上,点进任意一个文件(任何代码仓库repository的任何文件),右上角有一个小铅笔的图标。点击它,GitHub将fork到你的repo(在你的repo中建立一个新分支),然后就可以在你的repo中任意编辑文件。完成后,点击下方的Propose file change,申请将修改合并到原项目中(即pull request),这样原项目的作者就可以将你修改的东西合并到原项目的主分支上去,这样就为开源项目贡献了代码,开源项目就会在大家共同的努力下不断壮大和完善。

粘贴图像

评论区和issue中不仅限于文字,还可以直接从剪贴板粘贴图片(网上的图片,本地图片不可以)。右键粘贴时,会看到它被上传到云端(user-images.githubusercontent.com),并自动使用Markdown语法插入文中。

代码高亮

如果想写一个代码块,可以从三个反引号开始 - 就像使用Markdown一样简单,GitHub将自动检测你使用的编程语言。但是,如果发布的是Vue,Typescript或JSX之类的代码片段,最好可以明确指定该代码语言以获得更准确的高亮显示,比如:

在反引号后加入语言名称:

预览中可以看到代码高亮正确渲染:

备注:此方法同样适用代码片段分享(Gist)。

这是所有Github自动支持代码高亮的语言列表,基本上是只有不知道的,没有不支持的。

在pull request中用魔术词结束issue

假设创建一个PR来解决问题#123,可以把文字“Closes#123”放在PR的描述中(或者在PR评论中的任何地方),合并后Github自动关闭这个issue。

这里是官方的详细说明

链接到评论

是否想过要链接到一个特定的评论,但不知如何实现?只需要点击用户名旁边的时间就可以在浏览器地址栏里得到特定评论的地址。

链接到代码

在查看文件时,点击代码旁边的行号,看到了吗?浏览器里的网址已更新为行号!如果按住Shift键选中到另一个行,则URL将再次更新,这样就突出显示了多行代码。

分享浏览器的链接就可以精准定位到这段代码。但是!现在是指向当前的分支,如果该文件改变分支了怎么办?点击Copy Permalink就可以获得永久固定链接地址。

在issue中创建列表

看看issue中的复选框列表:

用列表方式看issue,更简洁明了,用Markdown就可以创造这样的列表:

- [ ] Screen width (integer)
- [x] Service worker support
- [x] Fetch support
- [ ] CSS flexbox support
- [ ] Custom elements

而且是可以勾选的,不是死的。更神奇的是在主页上还可以显示进度条

项目看板

管理大项目用trello很方便,可以让你在一个便利的位置,一目了然地掌握正在处理的所有事情。

GitHub也不落后,也有类似trello的项目管理界面。不过UI没有trello那么漂亮。

在GitHub中管理任务的强大之处在于它可以与repo其余部分集成在一起 - 所以可以把repo现有的issue添加到看板上。可以点击右上角的Add cards,找到要添加的内容。在这里,特殊的搜索语法就可以派上用场了,例如,类型is:pr is:open,然后可以把所有开放的PR拖动到面板上,或者label:bug等。

也可以将现有的note转换成issue。

Github中定义任务与实现该任务的代码放在同一repo中有很大的好处,同步且可追溯!这意味着从现在开始,你可以在一段代码上用Git Blame,并找到产生此段代码的任务背后的原始依据,而不需要像Trello一样要去别的地方去溯源。

GitHub Wiki

目前在 GitHub 上发布的项目,一般使用 Markdown 来编写项目文档和 README.md 等。Markdown 一般情况下能够满足的文档编写需求,如果使用得当的话,效果也非常棒。不过当项目文档比较长的时候,阅读体验可能就不是那么理想了。如果已经超过了一个单一的README.md文件,希望有像Gitbook一样(比如《Docker — 从入门到实践》)、更详细的用户指南或说明文档,那么应该选择Gwiki。GitHub 每一个项目都有一个独立完整的 Wiki 页面,可以用它来实现项目信息管理,为项目提供更加完善的文档。可以把 Wiki作为项目文档的一个重要组成部分,将冗长、具体的文档整理成 Wiki,将精简的、概述性的内容,放到项目中或是 README.md里。

完美的Gwiki页面:可以参观一下Kingfisher的Gwiki

Gwiki的具体编辑方法可以参考这篇文章《GitHub Wiki 页面的添加和设置》。

用GitHub创建Hexo、Jekyll

你可能已经知道了可以使用GitHub页面来托管一个静态网站。把本地的页面,可以是Hexo、Jekyll等程序,也可以是自己的静态网页,通过Git部署到你GitHub的repo里。这方面的文章网上很多,自行搜索。

GitHub扩展小工具

最后再赠送一个实用小工具,使用Chrome浏览器可以添加Octotree插件,它提供了一个左侧的面板,可以查看的repo的树状结构图。所有目录里面的文件都会一次性预读取,不用像传统方式一层一层地点进去,就像在本地用文件资源管理器一样方便。

坚持原创分享,您的支持将鼓励我继续创作!