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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    совет

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

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

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

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

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

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

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

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

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