git checkout-index仅用于最近提交的文件

问题描述

我使用以下命令将已提交的文件复制到一个临时文件夹中:

git checkout-index -a -f --prefix=tmp-export/

我希望将其限制为仅最近30天内更改的文件。 这为我提供了这些文件的列表:

git log --pretty=format: --name-only --since="30 days ago" | sort /unique

我已经尝试了一些方法,但是在将列表通过管道传递到第一个git命令的地方似乎无法使其工作。 通过此命令提供自己的文件列表时,出现“错误不在高速缓存中”错误

git log --pretty=format: --name-only --since="30 days ago" | sort /unique | git checkout-index -f --prefix=tmp-export/ --stdin

任何帮助表示赞赏!

注意:在Windows 10上运行Git

解决方法

解决了。使列表唯一的步骤导致了问题。 不知道它是否会导致更多工作,但是跳过此步骤可以解决问题。 我还打开了安静模式(-q),因此第一行为空不会发出警告。

git log --pretty=format: --name-only --since="30 days ago" | git checkout-index -f -q --prefix=tmp-export-tst/ --stdin