Очень короткая заметка из серии «Записки для хозяйки».
Предисловие
У плохо организованных разработчиков, таких как я, часто бывает, что коммитишь всех, а потом оказывается, что что-то не так, но git всё помнит и вся эта разгул анархии остаётся в истории.Мне всегда казалось, что это можно исправить, но сколько раз я ни начинал искать ответ на этот вопрос — как удалить камиты в git — столько раз мне это не удавалось.
А все потому, что мои поиски привели меня к ребазу, а надо было искать ресет. На мой взгляд, вопрос освещен недостаточно, и моя заметка призвана восполнить этот пробел.
Алгоритм
- git status // проверяем, установлена ли у нас последняя версия
- git log // ищем камит, на который хотим откатиться
- sudo git reset --hard 7bcdf46b14b2dacc286b0ad469d5f9022d797f68 // указываем камит начиная с которого нам нужно забыть наши изменения, при этом из локальной ветки все камиты из указанной будут забыты - удалены
- git push --force origin Feature/draft //загрузить локальную ветку в оригинальную (серверную ветку) — все «лишние» камиты будут удалены из исходной ветки
- Победа!
ПС На самом деле камиты не удаляются из репозитория, удаляется связь этих камитов с деревом изменений, поэтому эти камиты исчезают из ветки, но git всё помнит. ПС2 Более правильного пути не нашлось (вариации с ребазом - не более чем вариации).
Но товарищи, которые считают, что в жизни все всегда происходит одинаково и поэтому всегда нужно действовать единственно правильным образом, были поражены таким вольным обращением с хранилищем.
Товарищи! У каждой задачи есть свои инструменты и методы, иногда git reset является подходящим методом, особенно если вы один разработчик проекта и хотите откатить камиты за последние два часа работы в вашей фиче-ветке.
Теги: #git #admin #git
-
Песни Из Openbsd
19 Oct, 24 -
Агат 9 — Советский Ответ Apple. Первая Часть
19 Oct, 24 -
Анализатор Успеха Идей
19 Oct, 24 -
Гиганты Звукозаписи Договорились О Mp3
19 Oct, 24