Используя git, как вы reset работающее дерево в состоянии индекса?
Ситуация:
- Редактировать файлы
- Добавить файлы в индекс
- Редактировать больше файлов
Теперь у нас есть три разных состояния. Состояние HEAD, состояние индекса и состояние рабочего дерева. Какая команда отменяет изменения в рабочем дереве, чтобы он соответствовал состоянию индекса?
Ответы
Ответ 1
Я использую git checkout .
, который отбрасывает все изменения из рабочего каталога. Это имеет значение, если вы не находитесь в корне репозитория.
Эта команда не удаляет вновь созданные файлы, что обычно хорошо. Если вам нужно это сделать, вы также можете использовать git clean
.
Ответ 2
Вы можете использовать git stash save --keep-index
для этого. После сохранения тайника вы можете использовать git stash drop
, если вы не хотите его поддерживать.
Ответ 3
Вы можете использовать git-checkout-index. Имейте в виду, что вам нужно добавить
-
-f
, чтобы заставить его перезаписать существующие файлы или
-
-f -a
, чтобы обеспечить перезапись всех путей в индексе.
Ответ 4
git checkout :/
отбрасывает все изменения в рабочем дереве и заменяет его тем, что в индексе, независимо от текущего рабочего каталога.
https://git-scm.com/docs/gitglossary#gitglossary-aiddefpathspecapathspec