Как патчи работают в Мерзавце?

Вы можете отправить запрос частичного обновления с HTTP PATCH, который содержит только новое состояние.

PATCH /coffeemachines/{id}
{
    status: "active"
}

Согласно Википедии :

Метод PATCH - это метод запроса, поддерживаемый протоколом HTTP для внесения частичных изменений в существующий ресурс. Метод PATCH предоставляет объект, содержащий список изменений, которые должны быть применены к ресурсу, запрошенному с использованием HTTP URI. Список изменений представлен в форме документа PATCH.

blockquote>

Также удобнее разделять слова в пути с помощью дефисов. Например:

PATCH /coffee-machines/{id}
{
    status: "active"
}

29
задан Moacir Rosa 24 August 2012 в 23:40
поделиться

5 ответов

Создайте свой патч через:

$ git format-patch master --stdout > patch.diff

тогда patch.diff будет содержать diff, который вы можете отправить кому-нибудь другому для применения, используя:

$ git am < patch.diff

Иногда, когда руководства немного плотные, имеет смысл поискать учебное пособие:

http://luhman.org/blog/2009/09/22/git-patch-tutorial

23
ответ дан 28 November 2019 в 01:49
поделиться

Правильный и простой способ сделать это, если вы используете Git, - через удаленные устройства:

cd \path\to\repo1
git remote add otherrepo \path\to\repo2
git fetch otherrepo

git log otherrepo/master  ## Find the commit you want to steal in the list

git cherry-pick SOME_SHA1  ## Snag just one commit
git merge otherrepo/master  ## Merge all of the new commits from otherrepo/master

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

2
ответ дан Ana Betts 28 November 2019 в 01:49
поделиться

Вам нужно перейти в «хранилище 2», из которого вы хотите создать патч, и запустить git-format-patch, чтобы создать патч: git format-patch master --stdout> name_of_patch_file

Затем вы переходите в «хранилище 1», к которому вы хотите применить патч: git apply name_of_patch_file

Иногда полезно просто проверить, не вызовет ли патч проблемы: git apply --check name_of_patch_file

0
ответ дан baraber 28 November 2019 в 01:49
поделиться

С Мерзавцем 2.25 (1 квартал 2020), git format-patch развивается для лучше использования описания ответвления (" git branch --edit-description") как предмет.

См. bf8e65b фиксации, a92331d фиксации, фиксация 46273df (15 октября 2019) [1 128] Denton Liu (Denton-L) .
<глоток> (Объединенный [1 129] Junio C Hamano - gitster -
в [1 130] b75ba9b фиксации, 10 ноября 2019)

format-patch : преподавайте --cover-from-description опция

<глоток> Signed-off-by: Denton Liu

Прежде, когда format-patch генерировал сопроводительное письмо, только тело, будет заполнен с описанием ответвления, в то время как предмет был бы заполнен с текстом заполнителя.

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

Учат патч формата принимать --cover-from-description опция и соответствующий format.coverFromDescription конфигурация, позволяя пользователям заполнить различные части сопроводительного письма ( включая предмет теперь ).

git config документация теперь включает:

format.coverFromDescription:

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

И git format-patch :

--cover-from-description=<mode>:

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

  • , Если <mode> message или default, предмет сопроводительного письма будет заполнен с текстом заполнителя.
    тело сопроводительного письма будет заполнено с описанием ответвления. Это - режим по умолчанию, когда никакая конфигурация, ни параметр командной строки не указаны.

  • , Если <mode> subject, первый абзац описания ответвления заполнит предмет сопроводительного письма.
    остаток от описания заполнит тело сопроводительного письма.

  • , Если <mode> будет auto, если первый абзац описания ответвления будет больше, чем 100 байтов, то режим будет message, иначе subject, будет использоваться.

  • , Если <mode> none, и предмет сопроводительного письма и тело будут заполнены с текстом заполнителя.

0
ответ дан 28 November 2019 в 01:49
поделиться

Самый простой способ создания патчей из последнего коммитата (или последних нескольких коммитов) является использование Format-Patch с отрицательным числом, указывающим количество коммитителей для создания патчей для:

git format-patch -1

Получу патч-файл с именем после описания фиксации. Использование AM , чтобы вставить его в другой репозиторий:

git am << name_of_patch_file
14
ответ дан 28 November 2019 в 01:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: