Русский ▾ Topics ▾ Latest version ▾ git-revert last updated in 2.54.0

НАЗВАНИЕ

git-revert — отмена некоторых существующих коммитов

ОБЗОР

git revert [--[no-]edit] [-n] [-m <номер-родителя>] [-s] [-S[<id-ключа>]] <коммит>…​
git revert (--continue | --skip | --abort | --quit)

ОПИСАНИЕ

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

Примечание: git revert используется для записи некоторых новых коммитов, чтобы отменить эффект некоторых более ранних коммитов (часто только ошибочного). Если вы хотите отбросить все незафиксированные изменения в вашем рабочем каталоге, вам следует обратиться к git-reset[1], в частности к параметру --hard. Если вы хотите извлечь конкретные файлы такими, какими они были в другом коммите, вам следует обратиться к git-restore[1], в частности к параметру --source. Будьте осторожны с этими альтернативами, так как обе они отбросят незафиксированные изменения в вашем рабочем каталоге.

См. "Сброс, восстановление и отмена" в git[1] для получения информации о различиях между тремя командами.

ПАРАМЕТРЫ

<commit>…​

Коммиты для отмены. Более полный список способов написания имён коммитов см. в gitrevisions[7]. Также могут быть указаны наборы коммитов, но по умолчанию обход не выполняется, см. git-rev-list[1] и его параметр --no-walk.

-e
--edit

С этим параметром git revert позволит вам отредактировать сообщение коммита перед фиксацией отмены. Это значение по умолчанию, если вы запускаете команду из терминала.

-m <номер-родителя>
--mainline <номер-родителя>

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

Отмена коммита слияния объявляет, что вы никогда не захотите изменений в дереве, внесённых слиянием. В результате последующие слияния будут включать только изменения дерева, внесённые коммитами, которые не являются предками ранее отменённого слияния. Это может соответствовать вашим желаниям, а может и нет.

Более подробную информацию см. в revert-a-faulty-merge How-To.

--no-edit

С этим параметром git revert не будет запускать редактор сообщений коммита.

--cleanup=<режим>

Этот параметр определяет, как сообщение коммита будет очищено перед передачей механизму фиксации. Дополнительные сведения см. в git-commit[1]. В частности, если <режиму> присвоено значение scissors, в случае конфликта к MERGE_MSG будет добавлен разделитель scissors перед передачей.

-n
--no-commit

Обычно команда автоматически создаёт некоторые коммиты с сообщениями журнала коммитов, указывающими, какие коммиты были отменены. Этот флаг применяет изменения, необходимые для отмены указанных коммитов, к вашему рабочему каталогу и индексу, но не создаёт коммиты. Кроме того, при использовании этого параметра ваш индекс не должен соответствовать коммиту HEAD. Отмена выполняется относительно начального состояния вашего индекса.

Это полезно, когда вы отменяете эффект более чем одного коммита в вашем индексе подряд.

-S[<id-ключа>]
--gpg-sign[=<id-ключа>]
--no-gpg-sign

Подписывать коммиты с помощью GPG. Аргумент id-ключа необязателен, и если не указан, в качестве значения по умолчанию будет использоваться личное имя коммиттера; если аргумент указан, он должен следовать сразу после параметра, без пробела. Параметр --no-gpg-sign полезен, если нужно отменить переменную конфигурации commit.gpgSign или параметр --gpg-sign, заданный ранее.

-s
--signoff

Добавляет завершитель (trailer) Signed-off-by в конец сообщения коммита. Дополнительную информацию см. в описании опции signoff в git-commit[1].

--strategy=<strategy>

Использовать указанную стратегию слияния. Должна использоваться только один раз. Подробности см. в разделе СТРАТЕГИИ СЛИЯНИЯ в git-merge[1].

-X<option>
--strategy-option=<option>

Передать параметр, специфичный для стратегии слияния, самой стратегии слияния. Подробности см. в git-merge[1].

--rerere-autoupdate
--no-rerere-autoupdate

После того как механизм rerere повторно использует записанное ранее разрешение на текущем конфликте для обновления файлов в рабочем каталоге, разрешить также обновить индекс, применив к нему результат разрешения. Параметр --no-rerere-autoupdate можно использовать как удобный способ дважды проверить результат работы git-rerere[1] и поймать потенциальные ошибки слияния до того, как зафиксировать результат в индексе с помощью отдельной команды git-add[1].

--reference

Вместо начала тела сообщения журнала с "This reverts <полное-имя-объекта-отменяемого-коммита>." ссылаться на коммит с использованием формата "--pretty=reference" (ср. git-log[1]). Переменная конфигурации revert.reference может использоваться для включения этого параметра по умолчанию.

ПОДКОМАНДЫ ПОСЛЕДОВАТЕЛЯ (SEQUENCER)

--continue

Продолжить выполняющуюся операцию, используя информацию в .git/sequencer. Может использоваться для продолжения после разрешения конфликтов в неудачном копировании коммита или отмене.

--skip

Пропустить текущий коммит и продолжить с остальной частью последовательности.

--quit

Забыть о текущей выполняющейся операции. Может использоваться для очистки состояния механизма последовательности после неудачного копирования коммита или отмены.

--abort

Отменить операцию и вернуться в состояние до последовательности.

ПРИМЕРЫ

git revert HEAD~3

Отменить изменения, указанные четвёртым с конца коммитом в HEAD, и создать новый коммит с отменёнными изменениями.

git revert -n master~5..master~2

Отменить изменения, сделанные коммитами от пятого с конца коммита в master (включительно) до третьего с конца коммита в master (включительно), но не создавать никаких коммитов с отменёнными изменениями. Отмена изменяет только рабочий каталог и индекс.

ОБСУЖДЕНИЕ

Хотя git автоматически создаёт базовое сообщение коммита, настоятельно рекомендуется объяснять, почему исходный коммит отменяется. Кроме того, многократная отмена отмен приведёт к всё более громоздким строкам темы, например Reapply "Reapply "<original-subject>"". Пожалуйста, рассмотрите возможность переформулировать их, чтобы сделать короче и уникальнее.

КОНФИГУРАЦИЯ

Дальнейшее содержание этого раздела, повторяет то, что может быть найдено в git-config[1]:

Warning

Missing ru/config/revert.adoc

See original version for this content.

СМ. ТАКЖЕ

GIT

Является частью пакета git[1]