如何列出 git 存储库中跟踪文件的所有不同扩展名?
How to list all distinct extensions of tracked files in a git repository?
我想知道 给定回购中 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 if m/\.([^.\/]+)$/' | sort -u
声明为别名时,必须转义</code>:</p>
<pre><code>alias gitFileExtensions="git ls-tree -r HEAD --name-only | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u"
这比天真更好find
,因为:
- 它排除了未跟踪的(gitignored)文件
- 它排除了通常包含 hundreds/thousands 个文件的
.git
目录,因此会减慢搜索速度
(灵感来自 How can I find all of the distinct file extensions in a folder hierarchy?)
我想知道 给定回购中 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 if m/\.([^.\/]+)$/' | sort -u
声明为别名时,必须转义</code>:</p>
<pre><code>alias gitFileExtensions="git ls-tree -r HEAD --name-only | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u"
这比天真更好find
,因为:
- 它排除了未跟踪的(gitignored)文件
- 它排除了通常包含 hundreds/thousands 个文件的
.git
目录,因此会减慢搜索速度
(灵感来自 How can I find all of the distinct file extensions in a folder hierarchy?)