Git и эл.почта

Отправка патчей в проект

Если вы только что сделали несколько изменений, простейший способ передать их это оправить их как патчи по эл.почте:

Первое выполните git format-patch; например:

$ git format-patch origin

это снерерирует группу файлов в текущей директории, один файл для каждого патча в текущей ветке но не в origin/HEAD.

Затем вы можете импортировать их в вашу почтовую программу и послать их вручную. Если у вас слишком большое количество патчей, предпочтительнее будет выполнить скрипт git send-email чтобы автоматизировать этот процесс. Проконсультируйтесь с почтой рассылки вашего проекта чтобы сначала определить каким образом мантейнеры предпочитают получать патчи.

Импортирование патчей в проект

Git также предоставляет инструмент называющийся git am (am здесь означает "apply mailbox"), для импортирования таких групп патчей полученных по эл.почте. Просто сохраните все сообщения содержащие патчи, по порядку, в единый файл, скажем "patches.mbox", и затем выполните

$ git am -3 patches.mbox

Git наложит каждый патч по порядку; если будут найдены какие-либо конфликты, то процесс остановится, и вы можете вручную исправить конфликты и выполнить слияние. (Параметр "-3" указывает git выполнить слияние; если вы предпочитаете просто прервать операцию оставив ваше дерево и индекс нетронутыми, вы можете пропустить этот параметр.)

Как только индекс обновлен результатами исправления конфликтов, вместо создания нового коммита просто выполните

$ git am --resolved

и git создаст коммит для вас и вы сможете продолжить накладывать оставшиеся патчи из эл.почты.

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



github logo