git reset
имеет очень важные флаги --soft
, --hard
и --mixed
(и --keep
и --merge
)
http://git -scm.com / документы / ГИТ-сброс
--mixed
является значением по умолчанию, и когда вы делаете git reset sha file
, вы делаете mixed
сброс, в результате чего:
- смешанный
Сбрасывает индекс, но не рабочее дерево (т.е. измененные файлы
сохраняются, но не помечаются для фиксации) и сообщает, что не было
обновлено. Это действие по умолчанию.
Как сказано выше, сброс в этом случае не затронет ваше рабочее дерево, и только версия в индексе сбрасывается на версию в ша.
git checkout
с другой стороны:
Когда заданы или --patch, git checkout не переключается
ветви. Обновляет именованные пути в рабочем дереве из
индексный файл или из именованного (чаще всего коммит).
Поэтому, когда вы сделаете git checkout
, вы потеряете изменения в файле, и он будет заменен тем, что было в версии файла в sha, тогда как при смешанном сбросе будет сброшен только ваш индекс в вашем рабочем каталоге все еще будут изменения, которые вы можете позже выполнить заново при необходимости.