Mis vahe on Gitis „git revert” ja „git rebase”?

Mis Vahe On Gitis Git Revert Ja Git Rebase



Mõnikord juhtub arendamise ajal mitu viga, näiteks tundliku teabe lisamine tahtmatult toimepanemiseks, tegemata töö tegemine või vigade sissetoomine. Muudatuste ennistamine ja Giti logiajaloo ümberkirjutamine võimaldab Giti kasutajatel need vead parandada ning tagada puhta ja õige koodibaasi.

Selles juhendis käsitleme järgmist:





Git revert käsk

' git tagasi ” käsku kasutatakse uute sissekannete genereerimiseks, mis tühistavad eelmises kinnistamises lisatud muudatused. Lihtsamalt öeldes kasutatakse seda lisatud muudatuste tühistamiseks, mis toimuvad pärast lähtestamiskäsu täitmist. Lisaks ei eemalda see olemasolevaid andmeid, vaid lisab lihtsalt lõpus uue kohustuse, mis tühistab kohalikus hoidlas tehtud muudatused.



Vaatame ülalkirjeldatud käsu praktilisi esitlusi!



1. samm: suunake ümber kohalikku hoidlasse

Esialgu käivitage ' cd ” käsk soovitud hoidla teega ja navigeerige sellele:





cd 'C:\Users\nazma\Git\Git\Demo1'

2. samm: looge ja lisage fail

Seejärel looge uus fail läbi ' kaja ' käsk ja jälgige seda, kasutades ' git lisada 'käsk:

echo 'minu uus fail' >> file8.txt && git add file8.txt



3. samm: kontrollige olekut

Järgmisena kuvage praeguse töökataloogi olek, käivitades käsu 'git status':

git staatus

Järgmise väljundi kohaselt on uut faili edukalt jälgitud:

4. samm: salvestage muudatused

Jälgitavate muudatuste salvestamiseks kasutage koos kinnitussõnumiga järgmist käsku:

git commit -m 'fail8.txt lisatud'

5. samm: vaadake Giti logi ajalugu

Käivitage käsk 'git log' käsuga ' – üks liin ” lipp, et näidata iga kohustust ühel real:

git log --oneline

Allpool esitatud väljund näitab, et kõik kohustused on edukalt loetletud. Oleme valinud ' 939d65b ” SHA-räsi edasiseks kasutamiseks:

6. samm: ennista muudatused

Pärast seda kasutage ' git tagasi ” käsk koos eelnevalt valitud kinnistusega, sooviksin muudatused tagasi võtta:

git revert HEAD

Pärast ülaltoodud käsu täitmist:

  • COMMIT_EDITMSG ” fail avaneb vaikeredaktoriga.
  • Toimingu ennistamiseks lisage kinnitusteade.
  • Vajutage ' CTRL+S ” klahve muudatuste salvestamiseks ja sulgemiseks:

Vastavalt alltoodud väljundile oleme konkreetse kohustuse edukalt tagasi võtnud:

7. samm: kinnitamine

Taastatud muudatuste kontrollimiseks käivitage järgmine käsk:

git log --oneline

Võib täheldada, et muudatused on uuel HASH-il edukalt tagasi viidud:

Git rebase käsk

' git rebase ” käsku kasutatakse mitme kohustuse liitmiseks või kombineerimiseks lineaarseks jadaks, muutes ja liikudes uuel alusel. See võimaldab kasutajatel integreerida viimaseid muudatusi ja kanda need ühest kohalikust filiaalist teise. Lisaks kirjutab see kohustuste ajaloo ümber teise ümber põhineva haru peale.

Nüüd vaadake alltoodud protseduuri paremaks mõistmiseks!

1. samm: loetlege filiaalid

Kõigepealt käivitage ' git filiaal ” käsk kõigi kohalike filiaalide kuvamiseks:

git filiaal

Antud väljundist oleme valinud ' tunnusjoon ” filiaal edasiseks kasutamiseks:

2. samm: vahetage haru

Ühest töötavast harust teise kontrollimiseks käivitage järgmine käsk:

git kassafunktsioon

3. samm: Rebase filiaal

Kasuta ' git rebase ” käsk kohaliku filiaali nimega, et see lisada:

git rebase master

4. samm: kuvage logi ajalugu

Uuesti tehtud muudatuste kontrollimiseks käivitage ' git log” käsuga „–oneline 'valik:

git log --oneline

Mis vahe on Gitis „git revert” ja „git rebase”?

Erinevus ' git tagasi ' käsk ja ' git rebase ” käsk on loetletud järgmises tabelis: see on kõik! Oleme selgitanud ' git rebase” ja „git revert ” käsud Gitis.

Järeldus

' git tagasi ” ja „ git rebase ” on kaks erinevat käsku, mida kasutatakse versiooniajaloo haldamiseks ja manipuleerimiseks. Mõlemat saab kasutada erinevatel eesmärkidel, näiteks git tagasi ” käsku kasutatakse uue sissekande loomiseks, mis tühistab sissekandes lisatud muudatused. Kuid ' git rebase ” käsku kasutatakse mitme sissekande liitmiseks lineaarseks jadaks, liigutades või muutes ülesandeid. Selles juhendis oleme illustreerinud erinevust ' git revert” ja „git rebase ” käsud Gitis.