Git: получить конкретную фиксацию

Мне нужно экспортировать в архив набор коммитов в репозитории git. Как мне это сделать? Используя svn, я мог бы выбрать фиксацию и экспорт в zip.

Ответ 1

Чтобы экспортировать репозиторий до определенной фиксации:

git archive -o export.zip <COMMIT>. Замените <COMMIT> на номер фиксации, который вы хотите экспортировать.

Чтобы создать патч между двумя коммитами:

git diff COMMIT1 COMMIT2 > patch.txt

Ответ 2

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

Команда, которую вы хотите, - git format-patch, и способ, которым вы применяете эти отформатированные исправления обратно в git, - с помощью команды git am.

Например, если у вас есть две команды C1 и Cn, которые вы хотите экспортировать в виде набора патчей git, вам нужно только:

git format-patch -k C1..Cn

Это создаст набор пронумерованных патчей (в вашем текущем каталоге). Каждый патч будет отличаться от фиксации, а также от информации о фиксации (название, комментарий, автор, дата и т.д.).

Это намного больше, чем простой файл diff между двумя коммитами, которые предоставят вам.