Как вывести список всех файлов в коммите?

  1. Запустите приложение в Xcode.
  2. Нажмите ⌘^Y (Debug -> Pause).
  3. Перейдите в консоль отладчика: ⌘⇧C
  4. Введите breakpoint set -r . -s <PRODUCT_NAME> (введите имя вашего приложения).

lldb ответит с помощью чего-то вроде ...

Breakpoint 1: 4345 locations

Теперь просто нажмите кнопку «Продолжить» .

breakpoint set - команда lldb для создания контрольных точек. Место указывается с использованием регулярного выражения (-r) в именах функций / методов, в данном случае ., которое соответствует любому методу. Опция -s используется для ограничения объема вашего исполняемого файла (необходимо исключить фреймворки).

При запуске приложения lldb теперь будет прерываться всякий раз, когда приложение попадает в функцию из вашего основного исполняемого файла.

Чтобы отключить тип точек останова breakpoint delete 1 (введите правильный номер точки останова).

2536
задан Jacek Laskowski 27 November 2015 в 19:20
поделиться

8 ответов

Предпочтительный Путь (потому что это инфраструктура команда; предназначенный, чтобы быть программным):

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js

Иначе (менее предпочтительный для сценариев, потому что это фарфор команда; предназначенный, чтобы быть направлением пользователя)

$ git show --pretty="" --name-only bd61ad98    
index.html
javascript/application.js
javascript/ie6.js
<час>
  • Эти --no-commit-id подавляет идентификационный вывод фиксации.
  • --pretty аргумент указывает пустую строку формата для предотвращения хлама вначале.
  • --name-only аргумент показывает только имена файлов, которые были затронуты (Спасибо Моток). Используйте --name-status вместо этого, если Вы хотите видеть то, что произошло с каждым файлом ( Deleted, Modified, А dded)
  • -r, аргумент должен рекурсивно вызвать в поддеревья
3427
ответ дан Robin Wieruch 28 November 2015 в 05:20
поделиться
  • 1
    Точка взята. Я однако говорил о неизменности полей в class реализация Map. – FK82 27 September 2010 в 19:11

Если Вы хотите получить список измененных файлов:

git diff-tree --no-commit-id --name-only -r <commit-ish>

, Если Вы хотите получить список всех файлов в фиксации, можно использовать

git ls-tree --name-only -r <commit-ish>
216
ответ дан Jakub Narębski 27 November 2015 в 19:20
поделиться
  • 1
    @Alexandre C. столь же легкий неправильно использовать как руководство sizeof-with-forloop путь. Я подозреваю лучшие двойные проверки все действия в C:) – Johannes Schaub - litb 16 July 2010 в 15:06

Я просто предположу, что gitk не желаем для этого. В этом случае попробуйте git show --name-only <sha>.

205
ответ дан Hank Gay 28 November 2015 в 05:20
поделиться
  • 1
    Я ненавижу макросы также. Я также ненавижу газонокосилки - я обычно подтверждаю потребность в более короткой траве, я просто don' t обладают процессом использования того для достижения другого. I' ve использовал макросы на другом языке, которые были намного более богатыми (например, Вы могли циклично выполниться, не обращаясь к рекурсивному, включают), и все же которые было также легче использовать правильно, чем макросы C. – Steve Jessop 21 November 2009 в 05:45
$ git log 88ee8^..88ee8 --name-only --pretty="format:"
24
ответ дан Pat Notz 28 November 2015 в 05:20
поделиться
  • 1
    @Herná n, и что с четырьмя параметрами? I' d идут для макс. (макс. (a, b), c) вместо этого – quinmars 11 December 2009 в 10:32

Комбинация" git show --stat" (благодарит Ryan) и несколько команд sed должна обрезать данные вниз для Вас:

git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"

, Который произведет просто список измененных файлов.

5
ответ дан Surya 28 November 2015 в 05:20
поделиться
  • 1
    Объект более точен. Вам действительно только нужно Смешанный, если Вы хотите, чтобы некоторые документы имели Массив, других для имения Объекта, других для имения Строки, и т.д., и т.д. – Peter Lyons 7 July 2013 в 04:46

Мне нравится это:

git diff --name-status <SHA1> <SHA1>^
11
ответ дан 22 November 2019 в 19:51
поделиться

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

git diff --name-status <SHA1> <SHA2> | cut -f2
15
ответ дан 22 November 2019 в 19:51
поделиться

Недавно мне нужно было составить список всех измененных файлов между двумя фиксациями. Поэтому я использовал эту (также специфичную для * nix) команду

git show --pretty="format:" --name-only START_COMMIT..END_COMMIT | sort | uniq

Update : Или, как указывает Итан ниже

git diff --name-only START_COMMIT..END_COMMIT

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

git diff --name-status START_COMMIT..END_COMMIT
67
ответ дан 22 November 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: