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