Git 状态 - 仅列出有更改的直接子文件夹,而不是内部文件

Git Status - List only the direct subfolders with changes, not inner files

我喜欢使用 Git 来组织版本控制和备份我在 Wordpress 中的所有 Web 文件。

更新插件后,我想使用 git status 获取直接子文件夹的更改列表。通常,如果执行 git status 将会有很长的一行更改,包括每个子文件夹的内部。 我想要的是将结果限制在 plugins 目录中具有更改的子文件夹。

例如,这个 git 命令:

git status project_folder/wp-content/plugins

结果为:

plugins/wpml-translation-management/classes/translation-basket/
plugins/wpml-translation-management/classes/translation-dashboard/
plugins/acfml/assets/
plugins/acfml/classes/class-wpml-acf-attachments.php
plugins/wordpress-seo/js/dist/commons-921.min.js
plugins/wordpress-seo/js/dist/components-921.min.js

实际上,git 命令会生成一个非常长的行列表,如屏幕截图所示:

我想知道的是 git 命令只输出:

plugins/wpml-translation-management/
plugins/acfml/
plugins/wordpress-seo/

这样的命令:

git status project_folder/wp-content/plugins --{display_only_direct_subfolders_with_changes}

试试这个:

git status --porcelain | awk '{print }' | xargs -n 1 dirname | uniq

awk '{print }' 

从列表中获取文件名

xargs -n 1 dirname 

从完整路径中提取目录

uniq

仅显示唯一目录

uniq 当你有很多行时可能会慢一点