Отменить изменения

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Если вы хотите отменить изменения в репозитории Git, сначала определите тип изменений, которые нужно отменить. Например, может понадобиться:

  • Отмените незафиксированные изменения в файле, изменив файл до последней зафиксированной версии. Вы также можете вернуть файл к любой зафиксированной версии.
  • Верните ветвь до предыдущего состояния, сбросив ее до предыдущей фиксации.
  • Отмените изменения, внесенные общей фиксацией, создав новую фиксацию, которая изменяет изменения. Так как этот подход не перезаписывает существующий журнал фиксаций, он подходит для отмены изменений, внесенных фиксациями, которые были отправлены и используются другими пользователями.
  • Измените последнюю фиксацию, чтобы изменить его содержимое или сообщение. Дополнительные сведения см. в разделе "Как обновить последнюю фиксацию".
  • Исправьте проблему, введенную в предыдущей фиксации, создав новую фиксацию , которая включает исправление. Дополнительные сведения см. в разделе "Создание фиксации".

В этой статье раскрываются следующие темы:

  • Отмена незафиксированных изменений в файле
  • Возврат ветви к предыдущему состоянию
  • Отмена изменений, внесенных общей фиксацией

Отмена незафиксированных изменений в файле

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

Git checkout также может вернуть файл к любой зафиксированной версии, если указать ИД фиксации.

Предупреждение

Если есть вероятность, что вы хотите повторно применить изменения, которые Git checkout отбрасывают, рассмотрите возможность скрытия этих изменений.

Visual Studio 2022 предоставляет интерфейс управления версиями Git с помощью меню Git, изменений Git и контекстных меню в Обозреватель решений. Visual Studio 2019 версии 16.8 также предлагает пользовательский интерфейс Team Explorer Git. Дополнительные сведения см. на вкладке Visual Studio 2019 — Team Explorer .

Visual Studio поддерживает отмену незафиксированных изменений в файле, изменив файл до последней зафиксированной версии.

В окне изменений Git определите файл с изменениями, которые требуется отменить. Если файл находится в разделе "Этапные изменения" , щелкните его правой кнопкой мыши и выберите "Отменить метку". Файлы без тегов отображаются в разделе "Изменения ".

Снимок экрана: параметры контекстного меню для промежуточных файлов в Visual Studio.

Если файл находится в разделе "Изменения" , щелкните его правой кнопкой мыши и выберите "Отменить изменения", чтобы отменить все изменения файла с момента последней фиксации.

Снимок экрана: параметры контекстного меню для измененных файлов в Visual Studio.

Возврат ветви к предыдущему состоянию

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

В Git reset есть несколько вариантов. Параметр по умолчанию — вернуть ветвь к предыдущей фиксации, но сохранить все последующие изменения в виде незафиксированных изменений. Другой вариант — вернуть ветвь к предыдущей фиксации, отменив все изменения всех файлов ветви после фиксации.

Предупреждение

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

  1. В строке меню выберите журнал ветвей представления Git>, чтобы открыть вкладку "Журнал" для текущей ветви.

    Снимок экрана: параметр

  2. На вкладке "Журнал" текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите сбросить, а затем нажмите кнопку "Сброс изменений" (-жестко), чтобы сбросить > ветвь в выбранную фиксацию и удалить все изменения всех файлов ветви после фиксации. Или нажмите кнопку "Сохранить > изменения" (--mixed), чтобы сбросить ветвь в выбранную фиксацию и сохранить все последующие изменения в виде незаметенных изменений.

    Снимок экрана: параметр

Отмена изменений, внесенных общей фиксацией

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

  1. В строке меню выберите журнал ветвей представления Git>, чтобы открыть вкладку "Журнал" для текущей ветви.

    Снимок экрана: параметр

  2. На вкладке "Журнал " текущей ветви щелкните правой кнопкой мыши фиксацию, которую вы хотите вернуть, и выберите " Вернуться", чтобы создать новую фиксацию, которая отменяет изменения, внесенные выбранной фиксацией.

    Снимок экрана: параметр

Следующие шаги