我使用类似git diff --name-only 'HEAD@{2 days ago}' HEAD
以在修订之间更改文件。
我的问题是,如果在这两个版本之间,一个文件被更改和恢复,它将不会被这个命令列出。我需要知道哪些文件被更改了,即使它们被还原了,我该怎么做?
我需要这个来发布建筑版本。如果一个版本在测试环境中失败,因为应用了错误的脚本,并且文件恢复到稳定状态,那么如果我要创建一个新版本,这个脚本将不在内部,也不会执行,错误的内容仍将在我的测试环境中。我将不得不手动执行脚本。它不会对应用失败版本的系统产生影响,但我的测试环境不会与其他所有环境处于相同的状态。
列出每次提交更改的所有文件,然后通过管道将其发送到| sort | uniq
:
for rev in $(git rev-list HEAD~4..HEAD); do
git diff --name-only $rev~ $rev
done | sort | uniq