Хотя мне действительно нравятся ответы в этой теме, я использую git reset --soft
для немного другого, но очень практичного сценария.
Я использую IDE для разработки, в которой есть хороший инструмент сравнения для показаизменения (постановочные и неустановленные) после моего последнего коммита.Теперь большинство моих задач связаны с несколькими коммитами.Например, допустим, я сделал 5 коммитов для выполнения определенной задачи.Я использую инструмент сравнения в IDE во время каждого добавочного коммита от 1-5, чтобы посмотреть мои изменения с последнего коммита.Я считаю, что это очень полезный способ просмотреть мои изменения перед фиксацией.
Но в конце моей задачи, когда я хочу увидеть все свои изменения вместе (до 1-го коммита), сделать код самостоятельно.перед выполнением запроса на удаление я просматриваю только те изменения, которые произошли в моем предыдущем коммите (после коммита 4), а не изменения всех коммитов моей текущей задачи.
Поэтому я использую git reset --soft HEAD~4
для возврата назад 4совершает.Это позволяет мне увидеть все изменения вместе.Когда я уверен в своих изменениях, тогда я могу сделать git reset HEAD@{1}
и уверенно переместить его на дистанцию.