查看 commit id

首先用 git log 查看版本库日志,找出需要导出的 commit id

$ git log --pretty=oneline
456bcbccd91278f7fdf6bf11bc73c4e3a6193c7f (HEAD) 搜索添加翻页
4416b97c1c67efb83f63bd60af8244105471f3db Merge branch 'master' into www.xxx.com
93593adac0bce680e63d202057c8128ccd9ea82b  调整页脚的网址

找出差异文件

使用 git diff 命令可以查看提交之间的插件,使用 --name-only 参数只显示文件名

$ git diff 456bcb 93593a --name-only
public/js/index.js
resources/views/index.blade.php
resources/views/public/pagination.blade.php

输出结果就是所有的差异文件,下面再使用 xargs 将文件进行下一步处理

将差异文件打包

$ git diff 456bcb 93593a --name-only | xargs tar -czvf ~/Desktop/update.tar.gz

这样,../update.tar.gz 文件就有所有更新的文件

直接复制出差异文件

$ git diff 456bcb 93593a --name-only | xargs -t -i{} cp --parents {} ../update

xargs -t -i{} cp --parents {} ../update的参数说明

-t:显示执行的命令
-i{}:将前面的输入作为一个占位符 {} 在后面使用