Практическое использование git reset --soft? - PullRequest
114 голосов
/ 05 марта 2011

Я работаю с Git чуть более месяца.Действительно, я впервые использовал сброс только вчера, но программный сброс все еще не имеет для меня особого смысла.

Я понимаю, что могу использовать программный сброс, чтобы редактировать коммит без изменения индекса илирабочий каталог, как я бы с git commit --amend.

Эти две команды действительно одинаковы (reset --soft против commit --amend)?Есть ли основания использовать одно или другое на практике?И что более важно, есть ли другие варианты использования reset --soft помимо внесения изменений в коммит?

Ответы [ 11 ]

0 голосов
/ 04 июля 2018

Хотя мне действительно нравятся ответы в этой теме, я использую git reset --soft для немного другого, но очень практичного сценария.

Я использую IDE для разработки, в которой есть хороший инструмент сравнения для показаизменения (постановочные и неустановленные) после моего последнего коммита.Теперь большинство моих задач связаны с несколькими коммитами.Например, допустим, я сделал 5 коммитов для выполнения определенной задачи.Я использую инструмент сравнения в IDE во время каждого добавочного коммита от 1-5, чтобы посмотреть мои изменения с последнего коммита.Я считаю, что это очень полезный способ просмотреть мои изменения перед фиксацией.

Но в конце моей задачи, когда я хочу увидеть все свои изменения вместе (до 1-го коммита), сделать код самостоятельно.перед выполнением запроса на удаление я просматриваю только те изменения, которые произошли в моем предыдущем коммите (после коммита 4), а не изменения всех коммитов моей текущей задачи.

Поэтому я использую git reset --soft HEAD~4 для возврата назад 4совершает.Это позволяет мне увидеть все изменения вместе.Когда я уверен в своих изменениях, тогда я могу сделать git reset HEAD@{1} и уверенно переместить его на дистанцию.

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