Как создать git diff / diff-tree / archive между 2 коммитами с версиями файлов именно в этой точке (не в заголовке) - PullRequest
0 голосов
/ 11 июня 2019

Если я хочу сравнить и экспортировать 2 коммита в прошлом друг с другом, я могу сделать git diff, чтобы вывести список всех измененных файлов, пока что все хорошо. Но если я захочу заархивировать эти файлы точно в той же версии, что и при последнем коммите, как мне этого добиться? Допустим, файл был удален после последнего коммита, архив git потерпит неудачу, потому что файл, указанный в git diff, больше не может быть найден. Нужно ли мне проверять последние коммиты, которые я хотел бы сравнить, или есть какое-нибудь элегантное решение?

git archive --output=test.zip HEAD $(git diff --diff-filter=ACMRTUXB --name-only SHA1 SHA2) происходит сбой для файлов, которые все еще существовали в diff, но больше не в голове

1 Ответ

0 голосов
/ 11 июня 2019

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

git archive --output=test.zip SHA2 -- $(git diff --diff-filter=ACMRTUXB --name-only SHA1 SHA2)
...