В этой статье кратко объясняется разница между git reset –hard, –soft и –mixed.
В чем разница между git reset –mixed, –soft и –hard?
Git предоставляет несколько вариантов сброса. В зависимости от того, как они обрабатывают коммиты, все доступные параметры отличаются друг от друга. Все они изменяют историю Git и перемещают HEAD назад. Более того, они по-разному обрабатывают изменения, например:
- “ -мягкий », используемый с параметром « $ git сбросить », чтобы сохранить файлы и вернуть изменения фиксации в промежуточный индекс Git.
- “ $ git reset — смешанный ” используется для отмены изменений фиксации и удаления файла из промежуточного индекса, не удаляя его из рабочего каталога.
- “ -жесткий ” вариант с “ $ git сбросить ” используется для удаления всех изменений и удаления их из локального рабочего каталога.
Давайте возьмем пример, чтобы увидеть, как « $ git сбросить Команда работает с разными параметрами!
Шаг 1. Перейдите в нужный репозиторий Git
Сначала перейдите в нужный репозиторий Git, используя « CD команда:
$ CD 'С:\Перейти \т is_repo'
Шаг 2: Создайте файл
Теперь выполните приведенную ниже команду, чтобы создать файл:
$ трогать Файл4.txt
Шаг 3. Добавьте файл в промежуточный индекс
Использовать ' git добавить », чтобы добавить вновь сгенерированный файл в промежуточный индекс:
$ git добавить Файл4.txt
Шаг 4: Зафиксируйте изменения
Далее добавьте все изменения в рабочий репозиторий, выполнив команду « git совершить команда:
$ git совершить -м 'Файл 4 добавлен'
Шаг 5. Проверьте журнал Git
Затем проверьте историю журнала Git, чтобы просмотреть последние добавленные коммиты:
$ журнал gitВ приведенном ниже выводе видно, что отображаются все последние добавленные коммиты, а « ГЛАВНЫЙ ” указывает на недавний коммит:
Примечание: Чтобы лучше проверить текущую позицию HEAD, выполните « журнал git ” вместе с “ -одна линия флаг:
$ журнал git --онлайнВ приведенном ниже выводе показан список хэшей SHA фиксации с сообщениями фиксации:
Шаг 6: Используйте команду git reset –soft
Чтобы вернуть добавленные изменения из репозитория Git в промежуточный индекс, используйте « git сброс » вместе с «- мягкий ” и укажите желаемую позицию HEAD, куда требуется переместить указатель:
$ git сброс --мягкий ГОЛОВА~ 1
Шаг 7. Проверьте статус Git
Теперь проверьте обратное положение HEAD и проверьте состояние репозитория Git:
$ статус gitВидно, что « git сброс -мягкий » вернула изменения фиксации в промежуточный индекс Git. Более того, « Файл4.txt » теперь находится в промежуточном индексе Git и должен быть зафиксирован:
Шаг 8. Проверьте журнал Git
Чтобы просмотреть текущую позицию HEAD, запустите данную команду вместе с « -одна линия ' вариант:
$ журнал git --онлайнЗдесь ГОЛОВА указывает на « Файл3 ' совершить:
Шаг 9: Используйте git reset — смешанную команду
Чтобы отменить зафиксированные изменения и удалить файлы из промежуточной области, не удаляя их из рабочего каталога, выполните команду « $ git reset — смешанный ” вместе с требуемой позицией HEAD коммита:
$ git сброс --смешанный ГОЛОВА~ 1
Шаг 10. Проверьте статус Git
Просмотрите недавно добавленные изменения, проверив статус репозитория Git:
$ статус gitМожно заметить, что указанные изменения фиксации удаляются из промежуточной области. Однако их размещают в рабочей зоне:
Шаг 11. Проверьте журнал Git
Проверьте историю журнала ссылок репозитория Git вместе с хэшем SHA:
$ журнал git --онлайн
Шаг 12: Используйте git reset — жесткую команду
Чтобы удалить добавленные изменения из локального рабочего каталога Git, выполните команду « $ git сброс – жесткий команда:
$ git сброс --жесткий ГОЛОВА~ 1
Шаг 13. Проверка обратного указателя HEAD
Чтобы проверить указатель HEAD, вернитесь в указанную позицию, запустите « журнал git команда:
$ журнал git --онлайнВывод ниже показывает, что HEAD указывает на « Файл1 добавлен ' совершить:
Шаг 14. Проверьте статус Git
Чтобы просмотреть добавленные изменения, проверьте статус Git:
$ статус gitВидно, что у нас нет никаких отслеживаемых и ожидающих изменений « Файл2.txt ' файл. Поэтому File2.txt был удален полностью:
Шаг 15. Проверьте список содержимого репозитория
Чтобы проверить список содержимого репозитория, запустите « лс команда:
$ лсКак видите, « Файл2.txt » файл не существует в текущем каталоге:
Мы объяснили разницу между опциями git reset –mixed, –soft и –hard.
Заключение
“ git сброс ” используется для сброса изменений, изменения истории репозитория Git и исправления ошибок. “ git сброс -мягкий Команда » сохраняет файлы и возвращает изменения фиксации в промежуточную область Git. Напротив, « git reset – смешанный ” отменяет изменения фиксации и удаляет файл из промежуточного индекса, не удаляя его из рабочего каталога. Чтобы удалить все изменения и удалить их из рабочей области Git, нажмите « git сброс - жесткий ” можно использовать команду. В этой статье показана разница между git reset –mixed, –soft и –hard.