Перейти к основному содержимому

Как отменить сделанные изменения

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

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

Переключиться на коммит

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

Выбор пункта «Переключиться на коммит» в контекстном меню коммита

Учтите, что при переходе на отдельный коммит открепляется указатель HEAD (указатель на конец текущей ветки), поэтому все последующие изменения сохраняются уже в новом коммите, который не относится ни к одной из существующих веток. Если вы хотите сохранить сделанные изменения, переключитесь на существующую ветку репозитория или создайте новую. Перед тем как выполнить переход на ветку, «1С:Шина» отобразит диалоговое окно, в котором вы можете указать, нужно ли перенести несохраненные изменения в эту ветку или требуется сбросить их.

Предупреждение о несохраненных изменениях

Сбросить ветку до заданного коммита

Чтобы отменить один или несколько последних коммитов в текущей ветке, выполните следующие действия:

  1. Нажмите на кнопку Синхронизация изменений, чтобы синхронизировать ваши изменения с изменениями в репозитории проекта.

    Нажатие кнопки «Синхронизация изменений»

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

    Окно с рекомендацией выполнить синхронизацию изменений

  2. Щелкните правой кнопкой мыши на нужный коммит в группе Коммиты и выберите один из следующих пунктов:

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

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

      Сброс ветки до выбранного коммита

    Если текущая ветка связана с задачей, то данные команды также доступны в группе Задачи представления . Раскройте список коммитов для текущей задачи, щелкните правой кнопкой мыши на нужный коммит и выберите требуемую команду сброса изменений в контекстном меню.

    Команды сброса изменений в группе «Задачи»

  3. Выберите тип сброса изменений:

    Выбор типа сброса изменений

    • Сброс (git reset / git reset --mixed) — сбрасывает ветку до указанного коммита, сохраняя все сделанные после него изменения. Они будут отображаться в группе Изменения как ожидающие индексации.

      Ожидающие индексации изменения после сброса

    • Мягкий сброс (git reset --soft) — сбрасывает ветку до указанного коммита, сохраняя все сделанные после него изменения. Они будут отображаться в группе Промежуточные изменения как проиндексированные и ожидающие фиксации.

      Ожидающие фиксации изменения после мягкого сброса

    • Жесткий сброс (git reset --hard) — сбрасывает ветку до указанного коммита и удаляет все сделанные после него изменения.

  4. Если вы выбрали Сброс или Мягкий сброс, выберите и проиндексируйте файлы, которые вы хотите включить в новый коммит, введите сообщение коммита и нажмите Зафиксировать и отправить (принудительно), чтобы отправить изменения в репозиторий проекта.

    Нажатие кнопки «Зафиксировать и отправить (п�ринудительно)»

    Если вы выбрали Жесткий сброс, нажмите Отправить (принудительно), чтобы удалить выбранные коммиты из истории текущей ветки в удаленном репозитории.

    Нажатие кнопки «Отправить (принудительно)»

    совет

    Другой способ отправить изменения в удаленный репозиторий проекта — щелкнуть по имени текущей ветки в панели состояния и выбрать команду Зафиксировать и принудительно отправить изменения (или Принудительно отправить изменения в случае жесткого сброса).

    Команды отправки изменений в панели команд

  5. Нажмите ОК в открывшемся окне, чтобы подтвердить операцию. История текущей ветки в репозитории проекта будет перезаписана.

    Окно принудительной отправки изменений в репозиторий

Отменить сброс изменений

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

Выбор опции «Сбросить текущую ветку»

Подтвердите сброс ветки в открывшемся окне, нажав ОК.

Подтверждение сброса ветки