git diff - только показать, какие каталоги изменились - PullRequest
0 голосов
/ 21 мая 2018

Можно ли перечислить только те каталоги, которые были изменены?

Если я в корневом каталоге git, скажем, ~/project

Файлы, которые я изменил,

~/project/subtool/file1

~/project/subtool/file2

~/project/subtool3/file1

Я просто хочу

~/project/subtool

~/project/subtool3

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Вы можете использовать git-diff с параметром --dirstat.

В вашем сценарии, скажем, у вас есть следующий коммит:

$ git diff --name-status HEAD~1
M       subtool/file1
M       subtool/file2
M       subtool3/file1

Будет выдан следующий вывод:

$ git diff --dirstat=files,0 HEAD~1
  66.6% subtool/
  33.3% subtool3/

Обязательно добавьте ,0, иначе git diff по умолчанию будет показывать только каталоги с изменениями не менее 3%.Я также выбрал files, так как это самый дешевый в вычислительном отношении вариант, и вы, похоже, не заботитесь о конкретных изменениях.

Если вы можете использовать sed, вы можете избавиться от него.процентных значений (вам может потребоваться немного подправить регулярное выражение в соответствии с вашими потребностями):

$ git diff --dirstat=files,0 HEAD~1 | sed 's/^[ 0-9.]\+% //g'
subtool/
subtool3/
0 голосов
/ 21 мая 2018

Использовать git diff с параметром --dirstat, например,

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