В чем разница между git reset –mixed, –soft и –hard?

V Cem Raznica Mezdu Git Reset Mixed Soft I Hard



В Git каждый коммит связан с предыдущим коммитом, а HEAD указывает на самый последний коммит в рабочей ветке. История коммитов хранится в виде дерева коммитов. Однако иногда разработчикам необходимо изменить историю коммитов. С этой целью « $ git сбросить ” используется для изменения истории репозитория Git и исправления допущенных ошибок.

В этой статье кратко объясняется разница между 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.