Подтвердить что ты не робот

Какая разница между файлом git reset и git checkout file?

Почему он git позволяет мне reset файл? Я думал, что понял reset, в том смысле, что он двигал ГЛАВУ... я явно ошибался.

Итак, git reset sha file, похоже, делает то же самое, что и git checkout sha file, за исключением того, что я вижу file в индексе и в рабочем каталоге.

Это не имеет смысла для меня. Может кто-нибудь объяснить разницу?

4b9b3361

Ответ 1

git reset имеет очень важные флаги --soft, --hard и --mixed--keep и --merge)

http://git-scm.com/docs/git-reset

--mixed по умолчанию, и когда вы делаете git reset sha file, вы делаете mixed reset, посредством чего:

- смешанные

Сбрасывает индекс, но не рабочее дерево (т.е. измененные файлы сохраняются, но не помечены для фиксации) и сообщает, что не было обновлено. Это действие по умолчанию.

Как сказано выше, reset в этом случае вообще не касается вашего рабочего дерева, и только версия в индексе reset соответствует той, что указана в шаге.

git checkout с другой стороны:

Когда или --patch даны, git проверка не переключается ветки. Он обновляет именованные пути в рабочем дереве из индексный файл или из имени (чаще всего это фиксация).

Итак, когда вы делаете git checkout, вы потеряете изменения в файле, и его заменит все, что было в версии файла в sha, тогда как при смешанном reset будет отображаться только ваш индекс reset, и ваш рабочий каталог по-прежнему будет иметь изменения, которые вы можете позже выполнить по мере необходимости.

Ответ 2

git checkout

Отменяет изменения в файле.

git reset

Удаляет файл из промежуточной области, но сохраняет изменения.