Как вы берете файл git diff и применяете его к локальной ветке, которая является копией одного и того же репозитория?

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

Очевидно, я мог бы идти по строкам и повторять все, но я бы предпочел не подвергать систему человеческой ошибке. Какой самый простой способ сделать это?

Ответ 1

Скопируйте файл diff в корневой каталог вашего репозитория, а затем выполните:

git apply yourcoworkers.diff

Более подробная информация о команде apply доступна на странице руководства.

Кстати: лучший способ обмениваться целыми записями по файлу - это комбинация команд git format-patch в отправителе, а затем git am на приемнике, потому что он также передает информацию об авторстве и сообщение фиксации.

Если приложение патча терпит неудачу, и если коммит сгенерирован из фактического в вашем репо, вы можете использовать опцию -3 apply, которая пытается объединить изменения.

Он также работает с трубой Unix следующим образом:

git diff d892531 815a3b5 | git apply