如何利用Git一步一步演示
Git已经彻底打败SVN,成为版本控制工具的老大。有了Git,无需服务器就可以保存自己的工作进度,包括但不限于源码、文档,等等。
那么Git能不能被用来做『稳健不出错的』现场演示呢?众所周知,现场敲代码演示是有风险的,平时下面敲代码运行很得心应手,但有时偏偏在演讲现场却容易被各种突发状况卡壳,演示不下去了。所以,我们能不能实现把演讲时,一步一步的场景暂存起来,到演讲的时候,首先展示初始化的状态,然后一步一步Next,还原程序是如何一步一步实现的呢?
既然Git可以保存工作进度,那就可以利用Git,将要展示的步骤分提交(commit)暂存起来,到演示的时候,逐个提交还原场景。但Git并没有提供简介的一条命令,一键逐步还原。Git中可以通过在HEAD后面加^
来一步一步获得历史提交。但是我们演示的场景是:
假设我们master的提交序列如下:
1 | init(初始化提交) -> C1 -> C2 -> C3 -> C4(最终提交,成型) |
我们演示一开始,给大家看到的是init
,然后逐步C1 -> C2 -> C3 -> C4
。而HEAD^的遍历方式是Previous:C4 -> C3 -> C2 -> C1 -> init
。那么有没有Nextinit -> C1 -> C2 -> C3 -> C4
模式的呢?
Git自身没有提供这样的命令,但是Git提供了alias,我们是否可以通过alias,创建一个git next
命令,逐步还原呢?当然可以,Git的alias不仅仅可以配置Git命令的别名,甚至可以配置Shell命令的别名。经过一番shell的编程,最终git next
命令诞生了!
演示步骤
- 首先基于init提交,创建一个演示分支demo, 并切换demo分支上。这时的提交序列只有
init
$ git next
//这时提交序列有init -> C1
$ git next
//这时提交序列有init -> C1 -> C2
$ git next
//这时提交序列有init -> C1 -> C2 -> C3
$ git next
//这时提交序列有init -> C1 -> C2 -> C3 -> C4
通过上面,可以看到,整个演示过程从最初的白板,一步一步,复盘,到最终成型的样子。
如何配置git next别名
编辑Git的配置文件~/.gitconfig
, 添加如下alias配置
1 | [alias] |