Журнал Git, чтобы показать измененные файлы пользователя, отсортированные по типу - PullRequest
1 голос
/ 16 апреля 2019

Для некоторых отчетов на работе мне нужно отправить файлы, которые я изменил в этом месяце, сгруппированные по типу. Я работал над командой git log, чтобы показать имена файлов и статус, но это помогло бы мне, если бы я мог выполнить сортировку по расширению файла.
Работая с этот ответ Я получил:
git log --no-merges --author="me" --after={2019-03-31} --name-status --pretty=format:"" | sort -u

Теперь я озадачен тем, как отсортировать этот список по имени файла.

Это текущий вывод, но обычно с десятками файлов:

M   package.json
M   src/app/spa/components/component1/comp1-tpl.html
M   src/app/spa/components/component1/comp1-component.ts
M   src/app/spa/components/component1/comp1-services.ts
M   src/app/spa/components/component1/comp1-services.spec.ts
A   src/app/spa/components/component2/comp2-tpl.html

Ответы [ 3 ]

2 голосов
/ 16 апреля 2019

Под именем файла, если вы подразумеваете путь:

git log --no-merges --author="me" --after={2019-03-31} --name-status --pretty=format:"" | sort -k2

Если вы имеете в виду имя без каких-либо родительских каталогов:

git log --no-merges --author="me" --after={2019-03-31} --name-status --pretty=format:"" | while read type path;do echo "$(basename $path) $type    $path";done | sort -u | cut -f2- -d' '
1 голос
/ 16 апреля 2019

Вы можете добавить расширение перед сортировкой так:

> git log --no-merges --author="me" --after={2019-03-31} --name-status --pretty=format:"" | sed -r 's|.*(\.[^.]+)$|\1\t&|;' | sort -u
.html   A   src/app/spa/components/component2/comp2-tpl.html
.html   M   src/app/spa/components/component1/comp1-tpl.html
.json   M   package.json
.ts     M   src/app/spa/components/component1/comp1-component.ts
.ts     M   src/app/spa/components/component1/comp1-services.spec.ts
.ts     M   src/app/spa/components/component1/comp1-services.ts
1 голос
/ 16 апреля 2019

У меня есть идея. Добавьте "grep .ext" в следующую команду. Для результата перенаправьте вывод в файл. Затем сделайте то же самое для другого расширения. В конце вы получите файлы, упорядоченные по расширению Ты понимаешь мою идею? Для вашего примера report.txt содержит упорядоченный список.

-> git log --no-merges --author = "me" --after = {2019-03-31} --name-status --pretty = format: "" | сортировать -u | grep "\ .html" >> report.txt

-> git log --no-merges --author = "me" --after = {2019-03-31} --name-status --pretty = format: "" | сортировать -u | grep "\ .json" >> report.txt

-> git log --no-merges --author = "me" --after = {2019-03-31} --name-status --pretty = format: "" | сортировать -u | grep "\ .ts" >> report.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...