我知道如何从提交中签出一个文件。
git checkout a0b1c3d -- path/to/some/file.txt
我也知道如何从提交中签出多个文件。
git checkout a0b1c3d -- path/to/some/file.txt path/to/another/file.txt
我们如何查看以特定扩展名结尾的所有文件?我尝试过以下方法:
git checkout a0b1c3d -- *.txt
git checkout a0b1c3d -- */**/*.txt
都没有工作。两个命令都没有检查,即使有* .txt文件要从指定的提交签出。
Checkout all files from a previous commit with a certain file name表示pathspec
可能存在错误。
答案 0 :(得分:0)
使用命令替换可以在存储库中获取具有给定扩展名的所有文件。 git ls-tree
和grep
可以做到这一点。
结果文件列表可以传递到git checkout
。
您可以使用以下命令检出扩展名为a0b1c3d
的文件txt
版本:
git checkout a0b1c3d -- $(git ls-tree --full-tree --name-only -r HEAD | grep .txt)
答案 1 :(得分:0)
引用该glob,以便您的外壳将其传递给Git,而不是扩展自身:
git checkout -- \*.txt
对我来说效果最佳,它检出了所有.txt文件(无论在任何级别,请参见git帮助中忽略git的路径名匹配规则)