背景
使用git archive打包两次提交之间的代码时,若中间存在已删除的文件,就会报 fatal:pathspec ‘xxxxxx’ did not match any files
如:
git archive --format=zip HEAD `git diff --name-only XXX1 XXX2` > 201903.zip
方案
获取两次提交之间不同的代码时,添加过滤条件,不取删除的文件即可,添加–diff-filter=ACMR
git diff --diff-filter 可以过滤几种不同的变化:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
Added (A), Copied ( C), Deleted (D), Modified (M), Renamed ®, have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).
实例如下:
git archive --format=zip HEAD `git diff --diff-filter=ACMR --name-only XXX1 XXX2` > 201903.zip