Как удалить первый коммит git
Перейти к содержимому

Как удалить первый коммит git

  • автор:

Как отменить коммит в Git

Чтобы отменить последний коммит в локальном Git репозитории, используется команда:

git reset HEAD~

Данная команда отменяет последний коммит. Файлы из данного последнего коммита переходят в статус unstaged, то есть в то состояние, в котором они были до коммита. Если запустить команду git status , то эти файлы будут находиться в списке «Changes not staged for commit». Содержимое файлов не изменяется.

Полное удаление последнего коммита

Если вы хотите полностью удалить последний коммит, включая все изменения файлов данного коммита, то используется команда:

git reset --hard HEAD~1

Например: у вас есть следующие коммиты A←B←C←HEAD . Коммит C самый последний и на него указывает HEAD (указатель на текущее состояние). После выполнения команды git reset —hard HEAD~1 вы получите состояние A←B←HEAD (коммит C будет удален). HEAD теперь указывает на коммит B .

Смотрите также:

  • Как изменить файлы в старом коммите (не последнем)
  • Как добавить все файлы в коммит, кроме одного
  • Как создать ветку из предыдущего коммита
  • Команда Git stash. Как прятать изменения в Git
  • Как показать файлы, которые будут добавлены в текущий коммит
  • Как восстановить файл
  • Как изменить комментарий к коммиту
  • Как отменить git add
  • Как клонировать репозиторий
  • Как посмотреть ветки
  • Опубликовано: 13.09.2018
  • yuriy

vorozhba / Как удалить commit в Github.txt

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

1. Получаем хэш-код коммита, к которому хотим вернуться.
2. Заходим в папку репозитория и пишем в консоль:
$ git reset —hard a3775a5485af0af20375cedf46112db5f813322a
$ git push —force

levosay commented Jul 7, 2021
alex-sansei commented Jul 15, 2021
JerryCash-x commented Jul 20, 2021
zose43 commented Aug 13, 2021
somefellahere commented Aug 21, 2021 •

be careful with: git reset —hard a3775a5485af0af20375cedf46112db5f813322a
it delete all your current changes, use that command without —hard , then git push —force

Fariarx commented Sep 20, 2021
ZodiacGP commented Sep 24, 2021
Sirena-byte commented Sep 29, 2021

огромное спасибо! помогло)

ghost commented Oct 1, 2021
Che-p-bot commented Nov 26, 2021

Спасибо, это очень помогло!

yurasts commented Nov 27, 2021
SlimDaddy228 commented Dec 12, 2021
Tim-Kids commented Dec 29, 2021

спасибо! все-таки русскоязычные запросы в Google тоже хорошо порой помагают.

KarimullinArthur commented Jan 17, 2022 •
Fobiya commented Mar 5, 2022
instasanjik commented Mar 24, 2022

Спасибо вам большое! Вы нас очень выручили!

Moon1706 commented Apr 17, 2022

@vorozhba
Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

olek07 commented Apr 18, 2022

@vorozhba Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

mpodaniev commented Apr 18, 2022

@vorozhba
Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

Через Вебшторм можно, просто удаляешь нужные коммит и пушишь через force. А как с помощью консольных команд не знаю, но точно можно.

olek07 commented Apr 19, 2022

@vorozhba
Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

Через Вебшторм можно, просто удаляешь нужные коммит и пушишь через force. А как с помощью консольных команд не знаю, но точно можно.

Разве так можно? Там же что-то вроде блокчейна. Следующий зависит от предыдущего. Разве нет?

mpodaniev commented Apr 19, 2022

@vorozhba
Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

Через Вебшторм можно, просто удаляешь нужные коммит и пушишь через force. А как с помощью консольных команд не знаю, но точно можно.

Разве так можно? Там же что-то вроде блокчейна. Следующий зависит от предыдущего. Разве нет?
Не знаю на счет блокчейна, и думаю что такого нет в гите.
Но постоянно так делаю, когда в фичебранче что-то разрабатываю, а потом оказывается что в каком-то коммите что-то не нужное добавил, а это могло быть десять коммитов назад к примеру. Просто удалил его локально и через форс пуш обновил данные в удаленном репозитории.
Все, в удаленном репозитории больше нет этого коммита

SlimDaddy228 commented Apr 27, 2022

давно нашел, не раз выручало, красавчик

maxim-saharov commented May 28, 2022

@vorozhba
Хелло! А можно ли как-то удалить не последние коммиты путем перемещения HEAD назад, а точечно одни коммит из последовательности? Пример, [1,2,3,4] -> [1,3,4]

Через Вебшторм можно, просто удаляешь нужные коммит и пушишь через force. А как с помощью консольных команд не знаю, но точно можно.

Разве так можно? Там же что-то вроде блокчейна. Следующий зависит от предыдущего. Разве нет?
Не знаю на счет блокчейна, и думаю что такого нет в гите.
Но постоянно так делаю, когда в фичебранче что-то разрабатываю, а потом оказывается что в каком-то коммите что-то не нужное добавил, а это могло быть десять коммитов назад к примеру. Просто удалил его локально и через форс пуш обновил данные в удаленном репозитории.
Все, в удаленном репозитории больше нет этого коммита

при удалении и при переименовании названия комита — вебшторм там много что шаманит и делает rebase всякий — о чем потом показывает в своей консоле — но если будут конфликты то предложит сравнивать и можно наломать там что то — лучше всегда перед этим делайте бек ап и потом играйтесь)

Удаление первого (единственного) коммита

подсказывают, что удалить первый и единственный коммит можно, например, так:

$ git update-ref -d HEAD 

хотя, вероятно, более естественным будет пересоздание самого хранилища (т.е., содержимого каталога .git ):

$ rm -rf .git && git init 

Отслеживать
ответ дан 20 мар 2018 в 18:06
aleksandr barakin aleksandr barakin
67.9k 216 216 золотых знаков 77 77 серебряных знаков 219 219 бронзовых знаков

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Удалить коммиты из ветки Git

В этом посте мы обсудим, как удалить коммиты из ветки Git.

1. git сброс

Здесь идея состоит в том, чтобы принудительно сбросить рабочий каталог, чтобы удалить все коммиты, которые идут после указанного коммита, а затем выполнить принудительное нажатие:

git reset --hard []

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

# Discard the first 4 commits
git reset --hard HEAD~4

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

# Force Push updates to the remote repository
git push [-f | --force]

Вот живой пример:

git reset --hard

Обратите внимание, что любые изменения, сделанные в рабочем каталоге с момента последней фиксации, автоматически отбрасываются. Чтобы избежать этого, сначала спрячьте свои локальные изменения, вызвав метод git-stash команда, которая, в свою очередь, также возвращает рабочий каталог в HEAD редакцию после сохранения ваших локальных изменений. git reset —hard HEAD часто используется для удаления всех незафиксированных изменений в соответствии с самой последней фиксацией в рабочем каталоге.

Если вы хотите сохранить свою работу и только отменить фиксацию, вы можете использовать —soft вариант.

git reset --soft []

Это показано ниже:

git reset soft

2. git вернуться

Не рекомендуется выполнять принудительную отправку в общедоступный или общий репозиторий; сделать git-revert вместо. Он создает новую фиксацию, которая отменяет все указанные изменения фиксации, а затем применяет ее к текущей ветке.

# Revert the commit 87859b5
git revert 87859b5

# Push to the remote
git push

Вот живой пример:

git revert

3. Интерактивный ребейзинг

Другой вероятный способ удаления комментариев — использование git-rebase команда.

git rebase -i []

Выполнение вышеуказанной команды откроет редактор со всеми фиксациями в вашей текущей ветке, которые идут после указанной фиксации. Чтобы удалить фиксацию, просто замените команду ‘выбрать’ на ‘удалить’ и закройте редактор. Вы также можете удалить соответствующую строку.

git rebase

Следующая команда удалит всю фиксацию e78d8b1 за один раз с помощью —rebase-merges режим с —onto вариант.

git rebase -r --onto e78d8b1^ e78d8b1

rebase drop specific commit

Это все об удалении коммитов из ветки Git.

Оценить этот пост

Средний рейтинг 4.96 /5. Подсчет голосов: 27

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Подписывайся
0 Комментарии
Встроенные отзывы
Просмотреть все комментарии
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации

  • Все проблемы
  • Практика DSA
  • 100 самых популярных задач
  • 50 лучших классических задач
  • Лучшие алгоритмы
  • Компилятор С/С++
  • Компилятор Java
  • Компилятор Python
  • Компилятор JavaScript
  • компилятор PHP
  • Компилятор C#
  • Свяжитесь с нами
  • Политика конфиденциальности
  • условия обслуживания
  • Подпишитесь на новые публикации

Techie Delight © 2023 Все права защищены.

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

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

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