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

Как отменить revert git

  • автор:

Как отменить revert git

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

git revert config-modify-tag

— отменяем коммит, помеченный тегом.

git revert 12abacd

— отменяем коммит, используя его хэш.

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

  • Бесплатные сервиса размещения репозитариев Git
  • Git workflow — Теория
  • Git workflow — Краткое введение по основным инструкциям
  • Git Wizardry
  • Про Git на пальцах (для переходящих с SVN)
  • Git на двоих
  • Ежедневный Git
  • Удачная модель ветвления для Git
  • Синхронизация через GIT
  • Git stash — работа с «карманом» в Git
  • Как посмотреть настройки репозитария Git и как их изменить
  • GIT: Инструкция-шпаргалка для начинающих
  • Как перенести локальный GIT-репозитарий на сервер вместе со всей историей
  • git reset — возврат к определенному коммиту, откат изменений, «жесткий» или «мягкий»
  • git revert — отмена изменений, произведенных в прошлом отдельным коммитом
  • Git — работа с ветками
  • Git: Путь Github. Цикл разработки — Простое объяснение
  • Машина времени в GIT
  • Git Rebase: руководство по использованию
  • Git: просмотр лога (истории) в консоли в виде дерева
  • Git: понимание команды git merge
  • Git: Опции слияния для команд merge и pull — определение стратегии слияния
  • Git: как переключиться на нужный коммит
  • Git: как смержить изменения из experimental в master
  • Git: как посмотреть изменения, внесенные определенным коммитом
  • Git: как посмотреть историю изменения одного файла
  • Git: как вернуть один файл в состояние, которое было в определенном коммите
  • git log — особенности данной команды при навигации по истории через git checkout
  • Git: Как исправить HEAD detached from
  • Git: что делать в состоянии detached head
  • Работа в команде с использованием Git на примере проекта в среде Blender 3D
  • Git: Как внести изменения в последний коммит
  • Как в Git создать новую ветку в условиях, когда что-то уже было изменено после последнего коммита
  • Как в Git залить новую локальную ветку в удаленный репозитарий
  • Git: Как подключить новую ветку с удаленного сервера
  • Git: Как узнать текущую ветку
  • Git: В чем разница между Fetch и Pull?
  • GIT: Как исправить ошибочный комментарий к коммиту или файлы в коммите
  • Как настроить git на использование proxy-сервера
  • Использование Git через HTTP-proxy
  • Настройка работы Git через Proxy-сервер
  • Git через proxy
  • Использование git за прокси с аутентификацией
  • Как в Git смержить изменения до конкретного коммита?
  • Самый удобный визуальный клиент Git под основные платформы — SmartGit
  • Основы системы управления версиями Git для новичков на примере SmartGit
  • Как сделать подключение к репозитарию Git через Socks Proxy в условиях отсутствия DNS
  • Как сделать подключение к репозитарию Git через проксирующее SSH соединение
  • Как работать с незавершенными изменениями в коде? Как их коммитить в Git?
  • Как в Git посмотреть незакоммиченные изменения в текстах исходников?
  • Как поместить на GitHub уже существующий репозитарий
  • Что происходит при откате изменений через git reset —soft
  • Не бойся хардресета! Он твой друг и помощник. (Как пользоваться git reset)
  • Как пометить определенный коммит тегом версии
  • Как в Git удалить файлы из индекса, не удаляя их в рабочей директории
  • Как настроить GIT, чтобы при конфликте слияния он прописывал в файл не только различия, но и «базу» этих различий
  • Git: Разрешение конфликтов объединений
  • Git: Извлечение старой версии файла
  • Git stash: временный отказ от проделанной работы
  • Git: проверка состояния репозитария, поддержание репозитария в рабочем состоянии
  • Как в Git отменить локальные изменения и получить новое состояние из удаленного репозитария
  • Как искать изменения в нужных файлах с помощью интерфейса gitk?
  • Как выбрать одну из версий бинарного файла при возникновнии конфликта слияния?
  • Как в Git посмотреть старый коммит, а потом вернуться обатно к самому последнему коммиту
  • Получение хеша последнего коммита и его даты в Git (для версионирования)
  • Памятка по неочевидным деталям использования Git
  • Как синхронизировать форк на Github с основным репозитарием через веб-интерфейс
  • Как пользоваться GitHUb: форки, ветки, запросы на добавление кода
  • Как отменить (сбросить) еще не закоммиченные изменения в Git
  • Первоначальная настройка имени пользователя и Email в Git-проекте
  • Можно ли принимать изменения через git pull если не закоммичены изменения рабочей директории
  • Как посмотреть какие команды генерирует git gui
  • Как удалить файл в Git-репозитарии с изменением истории

Как отменить откат изменений (восстановить потерянный коммит)?

Вопрос: Есть ли способ в git отменить откат, т.е восстановить состояние, не закоммиченное в git`е ? Около месяца назад я создал коммит и сегодня я создал коммит( как я думал ), но коммит, как оказалось позже, не создался( моя вина ). Затем, спустя час, я решил произвести откат к последнему коммиту, но так как сегодня во время его создания произошла ошибка, я откатился к коммиту месячной давности.

Отслеживать
34k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 28 июн 2013 в 17:23
13.6k 13 13 золотых знаков 62 62 серебряных знака 122 122 бронзовых знака

Если данные были закоммичены, то к ним можно восстановиться. Если данные не были закоммичены, то скорее всего все утеряно. Да, коммитить раз в месяц — это странно. git приветствует частые коммиты. Если перестарались и сделали много мелких коммитов — их можно объединить.

28 июн 2013 в 17:43

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

28 июн 2013 в 17:49

Если данные были закоммичены, то пусть хоть десять откатов назад сделаете, восстановиться можно. btw, изучите возможности «кармана» — git stash спрятать в карман, git stash pop — достать. Карман стековый (можно много запихать). Очень полезный инструмент, если планируете использовать «страшные неизвестные операции».

28 июн 2013 в 18:01

если файлы добавлялись в индекс (staging area), то для них будут созданы blob объекты в репозитории, и соответственно, можно вытащить содержимое в незаисимости был сделан коммит или нет

28 июн 2013 в 20:48

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Все что попадает в репозиторий не удаляется сразу, т.е. если даже ты удалил ветку, изменил коммит и т.д. есть возможность вернуться к предыдущей версии. Если же изменения были только в рабочей копии, а потом они «потерялись», то тут уж ничем не поможешь :(.

Ты можешь посмотреть в логе git reflog историю изменения HEAD ,еще можно перечислить все недостижимые объекты git fsck —unreachable . Может это поможет.

Если ты добавлял файлы в индекс, но не закомитил их то по выводу git fsck —unreachable можно будет найти эти файлы. Содержимое файлов хранится в blob объектах. В объектах типа tree хранятся коллекции blob объектов. Увы не знаю создается ли tree объект при добавлении файлов в индекс, но если создается то все что нужно это найти недостижимый tree объект с нужными файлами.

Для отображения содержимого объекта: git cat-file -p

Как отменить первый revert?

help me
сделал первый коммит решил отменить его и сделал git revert HEAD.
и все удалилось, как отменить revert и вернуть исходное состояние?

  • Вопрос задан более трёх лет назад
  • 7283 просмотра

Комментировать

Решения вопроса 1

Austin_Powers

Олег @Austin_Powers

Web developer (Symfony, Go, Vue.js)

Используйте git reflog для восстановления состояния.

Ответ написан более трёх лет назад

Комментировать

Нравится 2 Комментировать

Ответы на вопрос 1

tsarevfs

C++ developer

revert в отличие от reset не удаляет коммит, а добавляет новый коммит, который отменяет указанный.
https://githowto.com/ru/undoing_committed_changes
Поэтому у вас есть 2 варианта:
Отменить отменяющий комит с помощью revert
Удалить последний коммит с помощью reset
evtuhovich.ru/blog/2009/04/03/git-reset

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

#3 — Отмена действий. Возвращение к старым версиям

#3 - Отмена действий. Возвращение к старым версиям

Git позволяет просматривать хронологию изменений в вашем проекте. В ходе урока вы познакомитесь с отменой действий (коммитов) в Git, а также научитесь удалять коммиты и возвращать проект «назад во времени».

Видеоурок

В Git есть замечательная возможность «возвращения во времени»:

  • вы можете просмотреть как выглядел ваш проект на стадии определенного коммита;
  • вы можете отменить определенный коммит;
  • вы можете выполнить удаление коммита и возвращение к проекту на стадии определенного коммита.

Просмотр проекта

Чтобы просмотреть проект на стадии какого-либо коммита вам необходимо прописать команду git checkout id , где id это идентификатор коммита, который хотите просмотреть.

Чтобы узнать id изначально пропишите команду git log —oneline . Тогда вы получите список всех коммитов что были сделаны в вашем проекте, а также их идентификаторы.

Чтобы просмотреть какой-либо коммит выполните комманду: git checkout 102e2f1 . Здесь вы просмотрите проект на стадии первого коммита.

Отмена коммита

Для отмены коммита используйте команду git revert id , где id это идентификатор коммита, который хотите просмотреть. После выполнения команды вы отмените определенный коммит.

Удаление коммита

Для удаления коммита используйте команду git reset id —hard , где id это идентификатор коммита, который хотите просмотреть. После выполнения команды вы удалите определенный коммит и все данные будут возвращены к проекту что был на стадии коммита.

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *