В современных браузерах вы можете использовать структуру данных Map
вместо объекта.
Объект Map может выполнять итерацию своих элементов в порядке размещения ...
blockquote>
Если вы не совсем уверены в том, что подразумевается под "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, описывающая все способы указания коммитов (^
- лишь основной из многих).
git reset --soft HEAD ^
Сохранит измененные изменения в ваше рабочее дерево.
git reset --hard HEAD ^
ОТМЕТИТ ВАШИ ИЗМЕНЕНИЯ !!!
Будьте осторожны, reset --hard
удалит и ваши локальные (незафиксированные) модификации.
git reset --hard HEAD^
примечание: если вы работаете в Windows, вам нужно указать HEAD ^, поэтому
git reset --hard "HEAD^"