上次有人叫我在 Blessing Skin 每次升级的时候带上一个增量更新包,只包含所有上一个版本后修改过的文件。
我听到这个需求,最开始想到的是使用 git diff --name-only
,加上这个参数后可以只显示 commit 之间修改过的文件名,然后就可以用管道通给 zip 之类的程序来压缩。
去网上搜了搜,发现还有更简单的方法:
$ git archive -o ../latest.zip NEW_COMMIT_ID $(git diff --name-only OLD_COMMIT_ID NEW_COMMIT_ID)
这是用了 git archieve
命令,本质上和我上面说的也差不离。
如果你打了 tag,就可以写成这样:
$ git archive -o ../latest.zip HEAD $(git diff --name-only v3.0.1 HEAD)
是不是很方便呢 |∀` )