# 获取本次提交的commit id 和 修改(或增删)文件列表
注意反引号才是将命令输出内容设置为变量。
COMMIT_ID=`git rev-parse HEAD`
DIFF_FILES=`git diff HEAD HEAD^ --name-only`
# 获取本次提交修改之后的新文件
mkdir -p diff_files/new
cp -rf --parent $(echo ${DIFF_FILES}) diff_files/new
# 获取本次提交修改之前的旧文件,通过reset到上一次提交来实现
mkdir -p diff_files/old
git reset --hard HEAD^
cp -rf --parent $(echo ${DIFF_FILES}) diff_files/old
# 恢复Git本地副本
git cherry-pick ${COMMIT_ID}
# 生成最终的压缩文件diff_files.zip,并删除中间文件
zip -r diff_files.zip diff_files/
rm -rf diff_files
————————————————
版权声明:本文为CSDN博主「_Hansen_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hanlizhong85/article/details/79952095