一个程序员日常工作中对于 Github 的一些另类用法
![一个程序员日常工作中对于Github的一些另类用法](https://static001.geekbang.org/infoq/59/59d79d95bf000e1f5f4e941a62b95a31.png)
这篇文章包含了 Jerry 平时对于 Github 的一些另类用法。目录如下:
1. 部署 HTML 应用到 Github 并运行
2. Github 和云平台的集成
3. ABAP Git 客户端
4. 用 Github 搭建个人博客
5. 一些提高工作效率的小窍门
6. Github 周边
如果您也有使用 Github 的小技巧,欢迎留言。
1. 部署 HTML 应用到 Github 并运行
这个技巧其实是把 Github 作为一个简单的 Web 容器使用。新建一个 Github 仓库,再新建一个 gh-pages 分支,将您的 HTML 项目文件保存并推送到该分支下。假设我开发了一个 Angular 应用,应用的入口页面是 angular_controller.html,那么将本地文件推送到 Github 后,使用如下格式的 url 访问该应用:
http://<your user name in github>.github.com/<repository_name>/angular_controller.html
我做的一个例子:
![](https://static001.geekbang.org/infoq/c5/c5806fefabc3c62025e4530e67168a22.png)
详细步骤参考我的博客:
Step by step to host your HTML application to Github
Jerry2014 年从 ABAP 开发转到 JavaScript 开发时,在网上搜集了很多开源的 JavaScript 库文件,一行一行调试,体会 JavaScript 大师们是如何把这门语言玩得出神入化的。
我把基于这些库文件开发的一共 91 个 HTML 应用都部署到了 Github 上,可以通过点击下面的链接来运行。
http://i042416.github.io/FioriODataTestTool2014/
下面是其中一个应用在手机上运行的效果。
![](https://static001.geekbang.org/infoq/6a/6a8f997f48b1626bf9a808a7ff46b0b9.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
2. Github 和云平台的集成
一个例子就是 Github 和 Salesforce 云平台 Heroku 的集成,对于开发人员来说使用非常简便。在 Heroku 上创建应用后,只需要点击 Connect to Github 按钮,
![](https://static001.geekbang.org/infoq/b4/b4ebd5956b4f470ff5a774c722071af7.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
即可通过本地 Git 客户端向远端仓库的推送动作来触发 Github 向 Heroku 的自动部署。
![](https://static001.geekbang.org/infoq/23/236f701fcb7926f1a6fd198cc3c027ec.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/31/31b979d3f226a6c6893c948411f841ec.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
也就是说,每次在本地做完修改,推送到 Github 远端仓库后,我们就可以直接访问 Heroku 上最新版本的应用了。
详细步骤参考我的博客:Step by step to host your UI5 application in Heroku
我部署在 Heroku 上的一个 UI5 应用:
https://jerrylist.herokuapp.com/ui5/
3. ABAP Git 客户端
一个开源的用 ABAP 实现的 Git 客户端,支持在 SAPGUI 里直接操作 Github 仓库。
如何使用?还是先在 Github 上创建一个空的仓库,然后执行 ABAP 客户端,将该仓库克隆(clone)到 ABAP 系统里某个包里。这个动作将 ABAP 系统这个包和 Github 上的仓库关联起来。
![](https://static001.geekbang.org/infoq/4a/4afd9992c197155dd3fb2f8141676b67.png)
克隆完成后,一旦在 ABAP 包里创建 ABAP 的报表或者类等开发对象,这些对象会自动出现在 ABAP Git 客户端。
![](https://static001.geekbang.org/infoq/72/723c31ea2721d2dcac515b1d3c031ab4.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
直接在 ABAP Git 客户端内将这些修改推送到 Github 上:
![](https://static001.geekbang.org/infoq/b1/b15751067e89652d9335cdfede72cab3.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
推送时和其他 Git 客户端一样,维护提交日志:比如 Jerry test comment:
![](https://static001.geekbang.org/infoq/2e/2e18dad257fe85ae9dea93c79f25cb57.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
用浏览器打开 Github 仓库,能看见从 ABAP Git 客户端推送的资源和日志:
![](https://static001.geekbang.org/infoq/af/af9b49702b2fa68aeac6bab28c60714a.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
4. 用 Github 搭建个人博客
早在 2012 年 8 月时,阮一峰老师就在他的个人博客网站上介绍了如何使用 Github 搭建个人博客:
http://www.ruanyifeng.com/blog/2012/08/blogging_with_jekyll.html
抛开技术本身不谈,在阮一峰老师这篇博客的评论区,网友们展开了激烈的讨论。部分朋友认为 Github 不应该滥用,只适合用来存储代码。
Jerry 对这种观点不置可否,下面是 SAP 成都研究院几位开发人员和我自己用 Github 搭建的个人博客:
http://www.tgf21.com - SAP 成都研究院 S/4HANA 开发团队 Tang Roam
http://duyue6002.github.io - SAP 成都研究院 C4C 开发团队 Du Rhea
http://jerrywang.vip
手机上打开这些搭建在 Github 上的个人博客,效果如图:
![](https://static001.geekbang.org/infoq/d3/d321ae8040bd8143ebd79987009be6e6.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
5. 一些提高工作效率的小窍门
在用户目录下编辑.gitconfig 文件,为常用的命令设置一些别名,比如用 git c 代替 git commit -m, 这样每次使用可以少敲击几次键盘。
![](https://static001.geekbang.org/infoq/55/55aea390c71d1acdfae770f14b027318.png)
修改用户目录下另一个文件.bash_profile,可以在里面写一些 shell 脚本,用 function 封装起来。每次在 Git 客户端输入这些 function 即可执行对应脚本。
目的还是少敲几次键盘完成同样的事情。假设使用这些小技巧每天能节省 2 分钟,一年下来能节省 12 个小时敲击键盘的时间。
![](https://static001.geekbang.org/infoq/38/3832166fa36f2d62a5a2662fbadc6898.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
6. Github 周边
两个有意思的和 Github 相关的 Chrome 扩展程序。
**Isometric Contributions:**使用 Chrome 打开 Github,能以柱状图的方式显示 contribution 明细。
![](https://static001.geekbang.org/infoq/2c/2cbe54c63713f091309f3d31277ec458.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
**Octotree:**在屏幕左边以树形结构显示仓库内代码列表,方便查看代码。
![](https://static001.geekbang.org/infoq/ce/cefd6caed4c7442b124e219d5723c8bd.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
有位老兄写了个工具,可以生成一些搞笑的 Github 提交记录图片(好像没什么用)。
https://github.com/moonlightpoet/FunGithub
原理就是把程序指定的 Github 用户的首页下载到本地,再将 HTML 页面渲染成指定的字符串。
写一个控制台程序,指定 Github 用户名和想看到的字符串:
![](https://static001.geekbang.org/infoq/c7/c7b4287cd1b8da1a7ce55c942046118d.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
输出:
![](https://static001.geekbang.org/infoq/57/57e83187b8ba0f771def25758608f5f5.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
Github 无处不在:
![](https://static001.geekbang.org/infoq/43/432a5f7ee18eaddbaaa7e3b5f826ca51.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
![](https://static001.geekbang.org/infoq/43/43fc82e3b2459de4fccbe1d82592acc6.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
最后一定要提一提这个仓库:
https://github.com/houshanren/hangzhou_house_knowledge
到 2018 年 6 月 5 日为止,这个仓库已经超过 17000 的 Star。。。
![](https://static001.geekbang.org/infoq/7d/7d4732e1d104d998f1ae4e6595585fcc.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
不少房地产业内人士看了这个仓库的内容都大吃一惊。
这份买房攻略写十分透彻,逻辑清晰,从房产概念、板块知识、地价、配套规划、学区到区域价值分析等,一应俱全。对于只知写代码、不了解房地产的程序员来说,这就是一份“购房宝典”,成了他们买房前参考的重要资料。
对于这位同行,Jerry 只想说:厉害了,我的哥!
![](https://static001.geekbang.org/infoq/44/448639e29ef7995c52feceb21248dba1.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
要获取更多 Jerry 的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
![](https://static001.geekbang.org/infoq/c7/c7f0a92ac2b00faae53c84369ae9c73c.png)
![](https://static001.geekbang.org/infoq/61/61117504f21707475c0b8e1766a317a0.png)
版权声明: 本文为 InfoQ 作者【Jerry Wang】的原创文章。
原文链接:【http://xie.infoq.cn/article/f117b2218320c7f5a5f0ec388】。文章转载请联系作者。
评论