2015-02-02 2 views
5

Есть ли команда Git, которую я могу использовать, которая будет перечислять имена всех файлов, которые существуют в одной ветви, которые не существуют в другая ветка?В Git, как я могу перечислить все файлы, которые существуют в ветви A, которых нет в ветке B

Фон: кто-то удалил некоторую историю, а затем толкнул начало/мастер. Некоторые члены команды говорили, что у них отсутствуют файлы. Я думаю, что я восстановил недостающие файлы с патчем, который я создал из команд diff. Я разветвил мастера после того, как история была удалена, и применил мой патч к новой ветке. Теперь я хотел бы просто посмотреть, какие файлы существуют в новой ветке, которых нет в HEAD ведущей ветви. На данный момент мне просто нужны имена файлов, независимо от содержимого, и только для файлов, которые существуют в новой ветке и не существуют в HEAD мастера.

+3

попробуйте 'git diff-tree', а затем укажите' --diff-filter = D', 'git help diff-tree' для получения более подробной информации. –

+1

@AndrewC. Также добавьте флаг -r для рекурсии через подкаталоги. 'git diff-tree -r -diff-filter = D branchA branchB' – jacobhyphenated

+0

Да! Следующее, похоже, делает именно то, что я искал. git diff-tree -r -diff-filter = D HEAD..master jacobhhenhenated, если вы отправите его в качестве ответа, я приму ответ. Спасибо. – DAC

ответ

14

Вы можете использовать git diff-tree, чтобы достичь того, чего вы хотите

использовать -r рекурсивно спускаться через поддерева и --diff-filter ограничить выход только к определенным типам файлов изменений (например, делеции = D)

git diff-tree -r --diff-filter=D branchA branchB

Смежные вопросы