Git status: изменения режима показа (разрешения) - PullRequest
0 голосов
/ 10 октября 2019

Когда я запускаю git status, многие файлы изменяются:

$ git status
On branch feature-branch
Your branch is up to date with 'origin/feature-branch'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   file1.txt
    modified:   file2.txt
    modified:   file3.txt
    ...

Есть ли способ показать, что эти файлы изменили только свои разрешения (режим), а не содержимое? Я думаю, что результат будет примерно таким:

$ git status
On branch feature-branch
Your branch is up to date with 'origin/feature-branch'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   file1.txt (100644 → 100755)
    modified:   file2.txt (100644 → 100755)
    modified:   file3.txt (100644 → 100755)
    ...

Мне известно, что git diff будет показывать что-то вроде этого:

diff --git file1.txt
old mode 100644
new mode 100755

, но я бы предпочел, если бы git status уже показывал мне это.


Примечание: Этот вопрос кажется похожим, но в этом случае git status вообще не обнаруживал изменений режима. В моем случае файлы помечаются как измененные, но я бы хотел отличить обычные правки файлов (изменение содержимого) от просто изменения прав доступа.

1 Ответ

0 голосов
/ 10 октября 2019

Я не верю, что Git это делает. Git сохраняет эти состояния для изменений файла

  •   ' ' = unmodified
  •   M = modified
  •   A = added
  •   D = deleted
  •   R = renamed
  •   C = copied
  •   U = updated but unmerged

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

Но вы можете создать скрипт, который будет анализировать различия в файле и смотреть, изменился ли режим, а затем изменить вывод по умолчанию git status.

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