Ang artikulong ito ay maikling ipaliwanag ang pagkakaiba sa pagitan ng git reset –hard, –soft, at –mixed.
Ano ang Pagkakaiba sa pagitan ng git reset –mixed, –soft, at –hard?
Nagbibigay ang Git ng maraming mga pagpipilian sa pag-reset. Sa batayan ng kung paano nila pinangangasiwaan ang mga commit, ang lahat ng magagamit na mga pagpipilian ay naiiba sa bawat isa. Binabago nilang lahat ang kasaysayan ng Git at ibinalik ang HEAD. Bukod dito, iba ang kanilang pinangangasiwaan ang mga pagbabago, tulad ng:
- Ang ' -malambot 'opsyon na ginamit kasama ng ' $ git reset ” utos na panatilihin ang mga file at ibalik ang mga pagbabago sa commit sa Git staging index.
- “ $ git reset –mixed ” ay ginagamit upang i-undo ang mga pagbabago sa commit at alisin ang file mula sa staging index nang hindi tinatanggal ito mula sa gumaganang direktoryo.
- Ang ' -mahirap 'opsyon na may ' $ git reset Ang command na ” ay ginagamit upang tanggalin ang lahat ng mga pagbabago at alisin ang mga ito mula sa lokal na direktoryo ng trabaho.
Kumuha tayo ng isang halimbawa upang makita kung paano ang ' $ git reset ” gumagana ang command sa iba't ibang opsyon!
Hakbang 1: Pumunta sa Desired Git Repository
Una, lumipat sa iyong gustong Git repository sa pamamagitan ng paggamit ng “ cd ” utos:
$ cd 'C:\Go \t is_repo'
Hakbang 2: Lumikha ng File
Ngayon, isagawa ang ibinigay na utos sa ibaba upang lumikha ng isang file:
$ hawakan File4.txt
Hakbang 3: Magdagdag ng File sa Staging Index
Gamitin ang ' git add ” utos upang idagdag ang bagong nabuong file sa staging index:
$ git add File4.txt
Hakbang 4: Magsagawa ng Mga Pagbabago
Susunod, idagdag ang lahat ng mga pagbabago sa gumaganang imbakan sa pamamagitan ng pagsasagawa ng ' git commit ” utos:
$ git commit -m 'Idinagdag ang File4'
Hakbang 5: Suriin ang Git Log
Pagkatapos, suriin ang kasaysayan ng log ng Git upang tingnan ang mga pinakabagong commit na idinagdag:
$ git logSa output sa ibaba, makikita na ang lahat ng mga pinakabagong idinagdag na commit ay ipinapakita, at ang ' ULO ” ay tumuturo sa kamakailang commit:
Tandaan: Upang tingnan ang kasalukuyang posisyon ng pagturo ng HEAD sa isang mas mahusay na paraan, isagawa ang ' git log 'utos kasama ang' -isang linya ' bandila:
$ git log --onlineIpinapakita sa ibaba ang ibinigay na output ang listahan ng commit SHA hash na may mga commit na mensahe:
Hakbang 6: Gamitin ang git reset –soft Command
Upang ibalik ang mga idinagdag na pagbabago mula sa Git repository sa staging index, gamitin ang “ git reset ” utos kasama ang “– malambot ” na opsyon, at tukuyin ang gustong posisyon ng HEAD kung saan kinakailangan upang ilipat ang pointer:
$ git reset --malambot ULO~ 1
Hakbang 7: Suriin ang Katayuan ng Git
Ngayon, i-verify ang pagbabalik na posisyon ng HEAD suriin ang katayuan ng imbakan ng Git:
$ katayuan ng gitMakikita na ang ' git reset –malambot ” utos ay nagbalik ng mga pagbabago sa commit sa Git staging index. Bukod dito, ang ' File4.txt ” file ay nasa Git staging index na ngayon at kailangang gawin:
Hakbang 8: Suriin ang Git Log
Upang tingnan ang kasalukuyang posisyon ng HEAD, patakbuhin ang ibinigay na command kasama ang ' -isang linya ” opsyon:
$ git log --onlineDito, itinuturo ng HEAD ang ' File3 ” mangako:
Hakbang 9: Gamitin ang git reset — mixed Command
Upang i-undo ang mga nagawang pagbabago at alisin ang mga file mula sa staging area nang hindi tinatanggal mula sa mga ito mula sa gumaganang direktoryo, isagawa ang ' $ git reset –mixed ” utos kasama ang kinakailangang posisyon ng HEAD ng commit:
$ git reset --magkakahalo ULO~ 1
Hakbang 10: Suriin ang Katayuan ng Git
Tingnan ang mga bagong idinagdag na pagbabago sa pamamagitan ng pagsuri sa katayuan ng imbakan ng Git:
$ katayuan ng gitMaaaring maobserbahan na ang mga tinukoy na pagbabago sa commit ay inalis mula sa lugar ng pagtatanghal. Gayunpaman, inilalagay sila sa lugar ng pagtatrabaho:
Hakbang 11: Suriin ang Git Log
Suriin ang kasaysayan ng log ng sanggunian ng Git repository kasama ang SHA hash:
$ git log --online
Hakbang 12: Gamitin ang git reset — hard Command
Upang alisin ang mga karagdagang pagbabago mula sa lokal na direktoryo ng pagtatrabaho ng Git, isagawa ang ' $ git reset –mahirap ” utos:
$ git reset --mahirap ULO~ 1
Hakbang 13: I-verify ang Reverted HEAD Pointer
Upang i-verify ang HEAD pointer, bumalik sa tinukoy na posisyon, patakbuhin ang ' git log ” utos:
$ git log --onlineAng output sa ibaba ay nagpapakita na ang HEAD ay tumuturo sa ' Idinagdag ang File1 ” mangako:
Hakbang 14: Suriin ang Katayuan ng Git
Upang tingnan ang mga idinagdag na pagbabago, tingnan ang katayuan ng Git:
$ katayuan ng gitMakikita na wala kaming anumang track at nakabinbing pagbabago ng ' File2.txt ” file. Samakatuwid, ang File2.txt ay ganap na tinanggal:
Hakbang 15: I-verify ang Listahan ng Nilalaman ng Repository
Upang i-verify ang listahan ng imbakan ng nilalaman, patakbuhin ang ' ls ” utos:
$ lsTulad ng nakikita mo, ang ' File2.txt ” file ay hindi umiiral sa kasalukuyang direktoryo:
Ipinaliwanag namin ang pagkakaiba sa pagitan ng git reset –mixed, –soft, at –hard na mga opsyon.
Konklusyon
Ang ' git reset Ang command na ” ay ginagamit para i-reset ang mga pagbabago, baguhin ang kasaysayan ng Git repository, at ayusin ang mga pagkakamali. Ang ' git reset –malambot Pinapanatili ng command ng ” ang mga file at ibinabalik ang mga pagbabago sa commit sa Git staging area. Sa kaibahan, ang ' git reset –mixed ” utos na i-undo ang mga pagbabago sa commit at alisin ang file mula sa staging index nang hindi ito tinatanggal mula sa gumaganang direktoryo. Upang tanggalin ang lahat ng mga pagbabago at alisin ang mga ito mula sa lugar ng pagtatrabaho ng Git, ang ' git reset –mahirap ” utos ay maaaring gamitin. Inilarawan ng artikulong ito ang pagkakaiba sa pagitan ng git reset –mixed, –soft, at –hard.