我想知道给定仓库中git跟踪的文件的所有不同扩展名,以便创建适当的.gitattributes
文件。
预期的输出示例:
bat
gitignore
gradle
html
jar
java
js
json
md
png
properties
py
svg
webp
xml
yml
我可以使用什么命令?
答案 0 :(得分:4)
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
更好,因为:
.git
目录,其中通常包含数百/数千个文件,从而减慢了搜索速度(灵感来自How can I find all of the distinct file extensions in a folder hierarchy?)