Как отменить мой последний коммит в Git [duplicate]

В современных браузерах вы можете использовать структуру данных Map вместо объекта.

Разработчик mozilla> Map

Объект Map может выполнять итерацию своих элементов в порядке размещения ...

blockquote>

762
задан Peter Mortensen 28 January 2018 в 21:41
поделиться

3 ответа

Если вы не совсем уверены в том, что подразумевается под "uncommit", и не знаете, хотите ли вы использовать git reset, смотрите статью "Revert to a previous Git commit".

Если вы пытаетесь лучше понять git reset, смотрите "Можете ли вы объяснить, что делает "git reset" на простом английском?".


Если вы знаете, что хотите использовать git reset, всё ещё зависит от того, что вы подразумеваете под "uncommit". Если вы хотите отменить акт фиксации, оставив всё остальное нетронутым, используйте:

git reset --soft HEAD^

Если вы хотите отменить акт фиксации и всё, что вы поставили, но оставить рабочее дерево (ваши файлы нетронутыми):

git reset HEAD^

А если вы действительно хотите полностью отменить это, отбрасывая все незафиксированные изменения, сбрасывая всё на предыдущий коммит (как спрашивалось в исходном вопросе):

git reset --hard HEAD^

В исходном вопросе также спрашивалось, что это HEAD^ , а не HEAD. HEAD относится к текущему коммиту - в общем, к вершине текущей проверяемой ветви. ^ - это обозначение, которое может быть присоединено к спецификатору коммита any, и означает "коммит до". Таким образом, HEAD^ - это коммит перед текущим, так же как master^ - это коммит перед вершиной основной ветви.

Вот часть документации git-rev-parse, описывающая все способы указания коммитов (^ - лишь основной из многих).

1293
ответ дан 22 November 2019 в 21:17
поделиться

git reset --soft HEAD ^ Сохранит измененные изменения в ваше рабочее дерево.

git reset --hard HEAD ^ ОТМЕТИТ ВАШИ ИЗМЕНЕНИЯ !!!

286
ответ дан 22 November 2019 в 21:17
поделиться

Будьте осторожны, reset --hard удалит и ваши локальные (незафиксированные) модификации.

git reset --hard HEAD^

примечание: если вы работаете в Windows, вам нужно указать HEAD ^, поэтому

git reset --hard "HEAD^"
60
ответ дан 22 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: