Я хочу отменить коммит и сохранить изменения - PullRequest
0 голосов
/ 27 ноября 2018

Извините - я не могу относиться к существующим ответам на этот вопрос, а также не к большинству вопросов, так как это неоднозначно, что задают и что достигается ответами.Я сделал:

  1. git clone….
  2. отредактированный файл «file» с помощью моего любимого редактора
  3. git add file
  4. git commit file

Я хочу вернуться в состояние сразу после 2. и до 3.

Если ваш ответ содержит аргументы для какой-либо команды git, пожалуйста, не забудьте объяснить эти аргументы (например, HEAD~ 32).

Мой вопрос кажется "дублирующим вопросом".Мне не показывали этот существующий вопрос при поиске «отменить git commit».Поэтому потенциально этот вопрос также не будет показан другим людям, ищущим мою поисковую фразу (ни мне, когда мне нужно снова найти ответ).Кроме того, ответы на существующий вопрос не объясняют, что такое HEAD ^ (как и текущий ответ здесь).

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Команда, которая уже была предложена, является той, которую вы ищете:

git reset HEAD~1

Ваш git-проект - это, по сути, стек изменений.HEAD - верхняя ячейка этого стека.когда вы фиксируете изменение, вы добавляете новую ячейку поверх этого стека.Вышеупомянутая команда выводит эти файлы обратно в измененные файлы перед командой git add.Или, другими словами, удаляет последнюю ячейку, которую вы сложили.Кроме того, число - ~ 1 - определяет, сколько «ячеек» или фиксирует для удаления.Я буду рад ответить, если что-то неясно.Также, вот полезное чтение о git reset .

0 голосов
/ 27 ноября 2018

Просто вернитесь в состояние до последнего коммита, но сохраните изменения в рабочей копии:

git reset @~

@~ - сокращение от HEAD~1 (т.е. предыдущий коммит, число 1 означает «вернуться на 1 шаг»).Git переключится на этот коммит, и изменения будут показаны как «не подготовленные для коммита» в git status.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...