Ответ 1
Для этого нет единой команды. Как вы уже отметили, вы можете объединить git revert -n
с git reset
, чтобы получить отмену в индексе.
Помимо этого метода вы можете использовать git apply -R
для "обратного применения" патча, и вы можете включить фиксацию в патч с помощью git show
, поэтому:
$ git show <rev> | git apply -R
имеет тот же эффект, с одной важной (но тонкой) разницей. Позвольте мне процитировать из документации git revert
и добавить свой собственный акцент:
-n, --no-commit
Обычно команда автоматически создает некоторые коммиты с фиксацией сообщения журнала, в которых указано, какие фиксации были возвращены. Этот флаг применяется изменения, необходимые для возврата названных коммитов к вашей рабочей дерево и индекс, но не совершает коммиты. К тому же, когда этот параметр используется, ваш индекс не должен соответствовать ГОЛОВА. Возврат выполняется в соответствии с начальным состоянием вашего индекс.
Другими словами, git revert -n
работает в и из индекса с побочным эффектом обновления вашего дерева работ. Команда git apply
работает (по умолчанию в любом случае) только на рабочем дереве и фактически может использоваться вне репозитория git.