Каква е разликата между git reset –mixed, –soft и –hard?

Kakva E Razlikata Mezdu Git Reset Mixed Soft I Hard



В Git всеки комит е свързан с предишния комит, а HEAD сочи към най-новия комит в работния клон. Историята на ангажиментите се съхранява като дърво от ангажименти. Понякога обаче разработчиците трябва да променят хронологията на ангажиментите. За тази цел „ $ git нулиране ” Командата се използва за промяна на хронологията на хранилището на Git и коригиране на допуснати грешки.

Тази статия ще обясни накратко разликата между 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.