Puomin kanssa tekniikan avulla on väistämätöntä, että kuka tahansa IT-henkilö työskentelee samanaikaisesti useiden tietojen kanssa, ja tietosi kehittyvät jatkuvasti ajan myötä. On myös välttämätöntä seurata kaikkia tietojen muutoksia ja olla valmiita perumaan tai peruuttamaan kaikki ei-toivotut muutokset tarvittaessa.
Minun on myönnettävä, että tietojeni versiointi Gitissä antaa minun olla kokeellisempi projektikehityksessäni. Jos sekaan, tiedän, että gitillä on aina tapa kumota ja / tai palauttaa projektiversio samaan tapaan kuin se oli ennen kuin rypistyin. Jokainen kerros on suunniteltu siten, että datamuutokset voidaan tarkistaa ja muokata ja / tai korjata ennen tietojen siirtämistä seuraavassa vaiheessa. Joten tässä blogissa käsitellään virheitä:
- Poista tiedostot / hakemistot hakemistosta
- Muokkaa viimeksi käytettyä viestiä
- Unohdin joitain muutoksia edellisessä sitoumuksessa
- Hylkää paikalliset muutokset
- Lähetti henkilötietoja paikalliseen arkistoon
- Korvattu viimeisin sitoutuminen uudella sitoutumisella
- Lähetti väärät tiedot
- Palaa vanhaan projektitilaan
- Palauta poistettu paikallinen haara
- Kumoa tehdyt muutokset
- Annoin väärän nimen sivuliikkeelleni
- Haluat järjestää historialokit uudelleen ennen kuin siirryt kaukosäätimeen
- Tehdyt liittymättömät muutokset yhdeksi sitoutumiseksi
- Muuta kirjoittaja-sähköpostiosoitetta kaikissa haarojen kaikissa sitoumuksissa
- Kadonneet ja löydetyt tiedostot
- Unohdin, millä sivuliikkeellä on sitoutumistunnukseni
- Poista sitoutuminen historiasta
- Työnsi väärän haaran kaukosäätimeen
Poista tiedostot / hakemistot hakemistosta
Kun lisäät ja / tai muokkaat tiedostoja, käytät usein git add -komennon oletuskäyttäytymistä, joka on kaikkien tiedostojen ja hakemistojen lisääminen hakemistoon.Usein tuntuu tarvetta poistaa tiettyjen tiedostojen vaiheet tai muokata niitä viimeinen kerta ennen niiden tekemistä.
Syntaksi: git nollaus
Hakemiston alueelta poistettujen tiedostojen poistaminen antaa sinulle uuden mahdollisuuden työskennellä uudelleen tietojen parissa ennen sitoutumista paikalliseen repoon.
Muokkaa viimeksi käytettyä viestiä
Komento: git sitoutuminen - muutos
Voit muokata uusinta sitoutumisviestiä luomatta uutta. Luetaksesi sitoutumislokit, olen asettanut aliaksen 'hist':
Komento: git config - globaali alias.hist 'log - melko = muoto: '% C (keltainen)% h% Creset% ad | % C (vihreä)% s% Creset% C (punainen)% d% Creset% C (sininen) [% an] '--graafi - sisustus - päiväys = lyhyt' x
Älä muuta sitoutumisviestiä, joka on jo siirretty etätietovarastoon ja jaettu muiden kanssa, koska se tekisi aikaisemman sitoutumishistorian virheelliseksi ja siten siihen vaikuttavaan työhön.
Unohdin joitain muutoksia edellisessä sitoumuksessa
Oletetaan, että unohdit tehdä joitain muutoksia ja olet jo sitoutanut tilannekuvan, etkä myöskään halua tehdä uutta sitoutumista korostamaan virheesi.
Komento: git sitoutuminen - muutos
Olen korostanut, miten äskettäisen sitoutumisobjektin sha-1-tunnus on luotu uudelleen ja muutettu. Teeskentelin tehneeni yhden sitoutumisen sekoittamalla molemmat muutokset yhteen.
Hylkää paikalliset muutokset
Joten tässä on tapaus, jossa muokkain README-tiedostoa ja järjestin sen. Seuraavaksi muokkain samaa tiedostoa toisen kerran, mutta tajusin, etten halunnut toista muutosta.
Sallikaa minun nyt kumota koko muutos manuaalisesti, voin yksinkertaisesti vetää tiedoston vaiheistetun version.
Syntaksi:
git kassa -
–Paikalliset muutokset tiedostossa
git kassa -
–Paikalliset muutokset kaikissa hakemiston tiedostoissa & ujo & ujo
Komento: git-kassa - LUE
Joten hylkäsin viimeiset tiedostoon tekemäni muutokset ja hyväksyin tiedoston vaiheistetun version. Seuraavassa sitoutumisessa vain tiedoston vaiheellinen versio menee paikalliseen arkistoon.
Lähetti henkilötietoja paikalliseen arkistoon
Haluan poistaa tietyt tiedot paikallisesta arkistosta, mutta pitää tiedostot työhakemistossa.
Syntaksi:
git reset - sekoitettu HEAD ~
git reset - sekoitettu
Komento: git reset - sekoitettu HEAD ~ 1
HEAD ~ 1 osoittaa sitoutumisen juuri ennen viimeaikaista sitoutumista, jonka nykyinen haara HEAD on osoittanut.
Nykyisen tilannekuvan tiedostot poistettiin sekä paikallisesta arkistosta että lavastusalueelta. Lisää seuraavat mallit globaaliin .gitignore-tiedostoon, jotta git ei voi seurata niitä.
vim ~ / .gitignore_global
# salasanatiedostot #
*.kulkea
* .näppäin
* .passwd
Tämän avulla sitoutuminen, jolla oli tilannekuva salasanatiedostoista, poistetaan ja saat siistin välilehden. Tiedostoni ovat edelleen työhakemistossani, mutta niitä ei enää ole paikallisessa arkistossa, eikä niitä myöskään työnnetä etätietovarastoon.
Varoitus: Jos menetät ne, git ei voi palauttaa niitä sinulle, koska se ei tiedä siitä.
Korvaa viimeisin sitoutuminen uudella sitoutumisella
Syntaksi: git reset --pehmeä [/ HEAD ~ n>]
‘–Soft’ -vaihtoehto poistaa vain määrätyt tiedostot paikallisesta arkistosta, kun ne ovat edelleen vaiheittaisia hakemistossa, ja voit sitoa ne uudelleen tarkistuksen jälkeen. on tilannekuvan sha-1, jonka haluat poistaa paikallisesta reposta. missä n on HEAD-sitoumusten määrä ennen HEAD-sitoutumista
mikä on span-tag HTML-muodossa
Komento :git reset - pehmeä HEAD ~ 1
Muokkaa tiedostoja ja aseta ne uudelleen
Komento: git sitoutua -m 'Hakemiston.html ja tyyli.css lisääminen'
Sitoutumishistoriasi osoittautuu nyt:
Lähetti väärät tiedot
Syntaksi:
git reset --kova HEAD ~ n
–Palauta projektin n-sitoumus ennen viimeisintä sitoutettua otosta
git reset - kova
–Palauta projekti annettuun sitoutumistunnisteen tilannekuvaan
Komento: git reset --kova HEAD ~ 1
Viimeisin sitoutus- ja vioittunut tiedosto poistetaan paikallisesta arkistosta, lavastusalueelta ja työhakemistosta.
Varoitus: Se on vaarallinen komento, kun menetät tiedostoja työhakemistoon. Ei suositella etäkäytössä olevalle arkistolle.
Palaa vanhaan projektitilaan
Voit siirtyä projektisi vanhempaan tilaan ajan historiassa. Jos sekoitat uusimpaan versioon tai tarvitset parannuksia vanhempaan koodiin, sinun kannattaa luoda uusi haara vanhasta projektin tilannekuvasta, jotta se ei estäisi nykyistä työtäsi. Katsotaanpa miten:
a. Luettele projektihistoria ja päätä vanhempi sitoutumistunnus, komento:mene hist
b. Luo uusi haara sitoutumistunnuksesta:
git checkout -b vanhan valtion e7aa9a5
c. Jatka koodin parissa työskentelyä ja yhdistä / alusta myöhemmin päähaaraan.
Palauta poistettu paikallinen haara
Menetetty työ on mahdollista uudistaa referenssihaaralla. Sanoin, että poistin haaran ”old_code” sulautumatta päähaaraan ja menetin työn. Ja ei, en myöskään työntänyt haaraa etätietovarastoon, mitä sitten? No git tracks ja pidä päiväkirjamerkintöjä kaikista muutoksista, jotka on tehty kussakin viitteessä, katsotaanpa minun:mene reflogiin
Joten HEAD @ {2} on osoitin, kun muutin vanhan koodin haaraan, palautetaan se:
Syntaksi:git kassalla -b
Komento:git checkout -b old_code HEAD @ {2}
Sinun on nyt oltava 'old_code' -haarassa viimeisimmän työn kanssa sen luomishetkellä. Lisäksi HEAD @ {1}: n 'reflog' -osoitin oli viimeinen sitoutuminen 'old_code' -haaraan. sitoutu aja komento seuraavasti:git reset --kova HEAD @ {1}.
Tämä palauttaa myös muokatut tiedostot työhakemistoon.
datatiede mikä se on
Jos haluat tietää yksityiskohtaisesti, kuinka tämä komento toimii ja miten voit hallita ”reflog” -merkintöjä, voit myös lukea aikaisemman viestinipalautetun haaran palauttaminen git reflogista.
Kumoa tehdyt muutokset
mennäpalatakäytetään tallentamaan uusia sitoumuksia kumoamaan joidenkin aikaisempien sitoumusten vaikutus.
Syntaksi: git palaa
Haluaisin peruuttaa tehdyistä lokeista tehdyn muutoksen korostetussa sitoutumistunnuksessa:
Komento: git revert 827bc0d
On parempi, ettet nollaa '- kovaa' jaettuja sitoumuksia, vaan 'git palauta' ne historian säilyttämiseksi niin, että kaikkien on helpompi jäljittää historialokeja saadakseen selville, kuka palautti ja miksi?
Voit käyttää samaa logiikkaa viitatessasi HEAD-osoitinta koskeviin sitoumuksiin sen sijaan, että annat sitoumustunnuksen, kuten HEAD ~ 3 tai HEAD ~ 4 ja niin edelleen.
Annoin väärän nimen sivuliikkeelleni
Voit nimetä paikallisen sivuliikkeen nimen uudelleen. Sattuu niin monta kertaa, että haluat nimetä sivuliikkeen uudelleen käsittelemäsi ongelman perusteella käymättä läpi työt, joita aiheutuu työnsi siirtämisestä paikasta toiseen. Voit esimerkiksi olla joko samalla haaralla tai eri haaralla ja silti pystyä nimeämään haluamasi haara uudelleen alla esitetyllä tavalla:
Syntaksi: git-haara -m
Komento: git haara -m vanha_koodi vanha_ # 4920
Kuten saatat ihmetellä, pitääkö git kirjaa tästä uudelleennimeämisestä? Kyllä, se viittaa reflog-merkintöihisi, tässä on minun:
Haaran uudelleennimeäminen ei vaikuta sen etäseurantahaaraan. Näemme etäosassa, kuinka etähaaroitus voidaan korvata haaralla
Järjestä historialokit uudelleen ennen kuin siirryt kaukosäätimeen
Kuinka toivon, että olisin tehnyt tiettyjä sitoumuksia aikaisemmin kuin toiset, enkä olisi tehnyt joitain sitoumuksia lainkaan. Järjestä ja muokkaa vanhoja sitoumuksia vuorovaikutteisesti uudelleen koodin tehokkaaseen korjaamiseen tai parantamiseen
Syntaksi: git rebase -i
Komento: git rebase -i fb0a90e
–Aloita niiden sitoumusten uudelleenlaskenta, jotka tehtiin sitoumustunnuksen fb0a90e jälkeen
Käy uudelleen git uudelleentarkastelu dokumentaatio ymmärtääksesi, miten ”-interaktiivinen tai -i” uudelleentase eroaa tavallisesta uudelleenkäynnistyksestä.
Tehdyt liittymättömät muutokset yhdeksi sitoutumiseksi
Tässä tapauksessa sinun on jaettava vanha haudattu sitoutuminen useisiin loogisiin toimiin.
Syntaksi: git rebase -i
Komento: git rebase -i fb0a90e
Rebase-editorissa sinun on valittava e7aa9a5-sitoutumistunnus ja muutettava se muotoon 'muokata' 'valitsemisen' sijaan.
Olisit nyt projektin versiossa sitoutumiseen id-e7aa9a5. Palauta ensin sitoutumishistoria ja lavastusalue edelliseen Command-Commandiin:git reset HEAD ~ 1
Toiseksi muokkaa + vaihe + sitoudu tiedostot yksitellen
Komennot:
git lisää koodi && git sitoutu -m 'Alkukoodien lisääminen'
git lisää uusi koodi && git sitoutu -m 'Uuden koodin lisääminen'
Kolmanneksi, jatka uudelleenkäsittelyä ja lopeta.
Komento :git rebase - jatka
Neljänneksi, tarkastele historiaa lisävahvistuksilla.
Komento: mene hist
Muuta kirjoittaja-sähköpostiosoitetta kaikissa haarojen kaikissa sitoumuksissa
Olen versioinut ja sitoutunut projektitiedostoihini gitissä jo kauan sitten, mutta toistaiseksi se ei koskaan vaikuttanut minulta, että sähköpostitunnukseni olisi vaarantunut sitoutumishistorialokeissani, jotka julkaistaan jopa etätallennustiloissa. No, näin voi käydä kenellekään, kun määritit aluksi kokoonpanot “.gitconfig” -tiedostossa. kirjoita uudelleen ympäristömuuttujat, jotka tarjoamme sitoutumisobjektia luodessamme.
Ensin saan luettelon sähköpostitunnukset päättää niistä, joita haluan muuttaa:
Komento: git-loki - kaikki - melko = muoto: '% an% d'
–Tämä tulostaa tekijän nimen (viitenimi / sivuliikkeen nimi)
Toiseksi juoksen läpi jokainen sitoutuminen jokaisella oksalla ja kirjoita sitoutumisobjekti uudella sähköpostitunnuksella
Komento:
git filter-branch - env-filter '
jos ['$ GIT_AUTHOR_NAME' = 'divya']
sitten
GIT_AUTHOR_EMAIL = 'divya@github.com'
olla
'- - kaikki
alilevy SQL-palvelin-esimerkeissä
Kadonneet ja löydetyt tiedostot
Oletetaan, että olet kadottanut tietyn tiedoston ja et muista sen nimeä, mutta voisit muistaa tietyt tiedostossa olevat sanat. Tässä tapauksessa voit seurata näitä vaiheita-
Vaihe 1: Luettelo kaikista tekemistä, jotka ovat koskaan sisällyttäneet tiedoston tilannekuvan haetun mallin kanssa
Komento :git rev-list - kaikki | xargs git grep -i 'aikaleima'
Vaihe 2 : Luo uusi haara 'kadonnut löydetty' tästä korostetusta sitoutumistunnuksesta
Syntaksi: git checkout -b kadonnut löytyi d8c6a76a6dcb1fc6e8c3f6b097e1bd07e7cd328f
Unohdin, millä sivuliikkeellä on sitoutumistunnukseni
Toisinaan, kun olet havainnut bugisen sitoutumistunnuksen, saatat myös haluta tietää kaikki haarat, joilla on tämä sitoutuminen, jotta voit korjata ne kaikki. Kunkin haaran historian tarkastaminen ei ole kovin käytännöllistä suuressa monisuuntaisessa projektissa.
Navigointirakennussovelluksessani tehty huono sitoumus rikkoi kerran koodin, silloin käytin 'Git bisect' -komento havaitsemaan virheellisen sitoutumistunnuksen jota seuraakomento:git-haara - sisältää
luetella oksat, joilla on huono sitoutuminen.
Joten nyt tiedän kaikki haarat, joilla on edelleen huono sitoutuminen, voisin joko palauttaa tai nollata tämän muutosjoukon.
Poista sitoutuminen historiasta
Joskus mielestäni on tarpeen vain pyyhkiä sitoumus historiasta äläkä jätä jälkiä siitä. En suosittele sinua kokeilemaan tätä temppua jaetussa haarassa, mutta vain paikallisessa haaratoimistossasi.
Syntaksi: git rebase -i
Komento :git rebase -i 93859d8
Korvaa uudelleenkäynnistyseditorissa korostettu sitoumustunnus: 69f4813 ‘edit’ sanalla ’drop’
Joissakin tapauksissa tämä uudelleenkirjoittaminen voi johtaa ristiriitoihin. Sinun on ratkaistava ristiriidat ja jatka sitten eteenpäin.
Varoitus : Tämä on vaarallinen komento, koska tämä kirjoittaa historiaa uudelleen ja saattaa menettää tietoja. Sellainen haara eroaa etäyhteydestään ja sitä on työnnettävä--pakottaa
tai- voima vuokrasopimuksella
vaihtoehto.
Työnsi väärän haaran kaukosäätimeen
Tässä on, mitä haluan tehdä - haluan poistaa a etäinen haara ja lopeta myös sen seuraaminen paikallisesta sivukonttoristani. ”git push
’Komento, kun sitä käytetään--poistaa
Vaihtoehto poistaa etähaaran. Näin saan kloonatun projektin paikallisen kopion -
git-klooni https://github.com/greets/myProj.git
cd myProj
Kun etähaara on poistettu, muiden jaetussa repossa olevien käyttäjien on päivitettävä ja päivitettävä etäviittauksensa--karsia
vaihtoehto poistaa puuttuvat objektiviitteet:git -haku --prune -v alkuperä
Tässä viestissä olen maininnut joitain yleisiä virheitä tai muutoksia, jotka git voivat auttaa sinua korjaamaan. Jokainen koodi on ainutlaatuinen ja kehitetty tavallaan, joten ongelmaan on myös erilaisia tapoja lähestyä ja korjata. Voit aina viitata virkamieheen git-dokumentaatio ymmärtää, kuinka erilaiset git-komennot suojaavat lähdekoodiasi ja kuinka käyttää komentoja parhaalla mahdollisella tavalla.
Nyt kun olet ymmärtänyt yleiset Git-virheet, tarkista tämä Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka DevOps -sertifiointikoulutuskurssi auttaa oppijoita ymmärtämään DevOpsia ja saa asiantuntemusta erilaisista DevOps-prosesseista ja työkaluista, kuten Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack ja GIT SDLC: n useiden vaiheiden automatisoimiseksi.
Onko sinulla kysymys meille? Mainitse se tämän 'yleisten Git-virheiden' kommenttiosassa ja palaamme sinuun