Git список удаленных файлов в истории всего репо - PullRequest
0 голосов
/ 07 мая 2018

Можно ли перечислить все удаленные файлы в истории всего репо в git? Я говорю об истории, начинающейся с пустого репо, где файлы были добавлены, изменены и скрыты. Я хочу перечислить все подавленные файлы.

Ответы [ 2 ]

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

Аргумент --diff-filter=D, как показывает ответ Арунта, поможет вам найти файлы, которые были удалены. Но есть несколько вещей, которые вы могли бы рассмотреть ...

Во-первых, вместо использования --summary и последующего использования других инструментов для извлечения нужной вам информации, почему бы просто не сделать так, чтобы git предоставил вам нужную информацию?

git log --name-only --diff-filter-D --format=''

Тогда вам не нужно беспокоиться о нарушении вашей команды, если должен измениться читаемый формат вывода для git (или если вы переходите на платформу, на которой нет утилит unix), и если вы решите, что хотите добавить информацию о коммите, который удалил файл, который легко сделать (изменив аргумент --format, например

git log --name-only --diff-filter-D --format='%n---%n%s'

, чтобы получить текстовое описание коммита), и, возможно, загрузка будет немного более эффективной.

И, конечно, вы можете использовать другие опции, такие как --reverse.

Теперь, как написано, все показанные ответы показывают только файлы, удаленные в коммитах, достижимых с HEAD. Если вы хотите просмотреть всю историю хранилища - что доступно из всех веток - вам нужно указать это.

git log --name-only --diff-filter-D --format='' --all

И, наконец, имейте в виду, что в уме git "переименовать файл A в файл B" означает "удалить файл A, создать файл B". По умолчанию git log будет стараться избегать включения "файла A" в этом случае в вывод --diff-filter=D, но при некоторых обстоятельствах он будет проникать внутрь. Если вы do захотите увидеть каждый исчезнувший файл ( даже если он появился в другом месте как часть перемещения), включите также параметр --no-renames.

git log --no-renames --diff-filter=D --format=''
0 голосов
/ 07 мая 2018

Это

git log --diff-filter=D --summary | grep delete | cut -d ' ' -f 5

Это для отображения удаленного файла с настоящего момента до начала репо, чтобы сохранить исторический порядок:

git log --reverse --diff-filter=D --summary | grep delete | cut -d ' ' -f 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...