我想知道给定存储库中 git 跟踪的文件的所有不同扩展名,以便创建适当的 .gitattributes
文件。
预期输出示例:
bat
gitignore
gradle
html
jar
java
js
json
md
png
properties
py
svg
webp
xml
yml
我可以使用什么命令?
最佳答案
git ls-tree -r HEAD --name-only | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u
声明为别名时,必须转义$1
:
alias gitFileExtensions="git ls-tree -r HEAD --name-only | perl -ne 'print \$1 if m/\.([^.\/]+)$/' | sort -u"
这比简单的find
要好,因为:
- 它排除了未跟踪(gitignored)的文件
- 它排除了
.git
目录,该目录通常包含成百上千个文件,因此会减慢搜索速度
(灵感来自How can I find all of the distinct file extensions in a folder hierarchy?)
关于git - 如何列出 git 存储库中跟踪文件的所有不同扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34088711/