Onnettomuuksia tapahtuu, jos työskentelet Gitissä. Olet ehkä vahingossa lisännyt tiedoston, jonka ei pitäisi olla siellä, tai sitoumuksesi ei ole kovin selkeä. Nämä ovat vain muutamia tilanteita, joissa saatat haluta poistaa tiedoston vahvistuksesta.
Tämä opas kertoo tarkalleen, kuinka tiedosto poistetaan sitoumuksesta ja miksi sinun tulee olla erityisen varovainen Git-tiedoston poistamisessa.
Tiedoston poistaminen Git Commitista
On olemassa muutamia tapoja poistaa tiedosto Git-toimituksesta riippuen siitä, onko se paikallinen toimitus vai oletko jo siirtänyt sen etävarastoon. Yksinkertaisin tapa olisi poistaa koko toimitus Gitissä , mutta jos haluat säilyttää suurimman osan tiedostoista, voit käyttää "git reset" -komentoa poistaaksesi tiedoston paikallisesta arkistosta:
- Käytä git lokia löytääksesi toimitus, jossa on poistettava tiedosto.
- Suorita git reset –soft HEAD^ kumotaksesi viimeinen sitoumus, mutta säilyttää muutokset esitysalueella.
- Poista tiedosto, jonka haluat poistaa, komennolla git reset HEAD .
" terminaalissa" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www .alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?w=578&ssl=1 578w, https://i0. wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize=300%2C188&ssl=1 300w , https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png?resize =510%2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by- Step-3.png?resize=400%2C250&ssl=1 400w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a -Commit-Step-by-Step-3.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width: 578px) 100vw, 578px">
- Toimita loput tiedostot uudelleen komennolla git commit -m 'Toimitusviestisi'.
Git 2.23.0 -päivityksen jälkeen voit käyttää myös "git-palautusta" seuraavasti:
- Kirjoita git restore –staged ja korvaa "filepath" tiedostolla, jonka haluat poistaa.
" komento komentorivillä" width="578" height="363" data-recalc-dims="1" data-src="https://i0.wp.com/www.alphr.com/wp-content /uploads/2023/12/git-restore-1.png?resize=578%2C363&ssl=1" data-srcset="https://i0.wp.com/www.alphr.com/wp-content/uploads/ 2023/12/git-restore-1.png?w=578&ssl=1 578w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1 .png?resize=300%2C188&ssl=1 300w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=510% 2C320&ssl=1 510w, https://i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=400%2C250&ssl=1 400w, https: //i0.wp.com/www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png?resize=302%2C190&ssl=1 302w" data-sizes="(max-width : 578px) 100vw, 578px">
- Sitten commit: git commit -c ORIG_HEAD .
Toinen vaihtoehto tiedoston poistamiseksi kokonaan on tehdä tämä:
- Poista tiedosto komennolla git rm .
- Korvaa "tiedostonimi" tiedoston todellisella nimellä.
- Sitouta amend-lipulla kirjoittamalla git commit –amen .
"rm"-komento poistaa tiedoston sekä työpuusta että hakemistosta. Tämä tarkoittaa, että se poistuu kokonaan sekä paikallisista että etävarastoista. Se on hyödyllinen komento, kun seuraat tiedostoa ja myöhemmin päätät, että sitä ei enää tarvitse seurata, joten voit poistaa sen koko projektista.
Voit myös harkita itse Git-haaran poistamista, jos haluat poistaa kaikki toimitukset ja tiedostot haarasta.
Miksi tiedosto poistetaan Git Commitista?
On useita syitä, miksi sinun on ehkä poistettava tiedosto Git-toimituksesta. Katsotaanpa muutamaa.
Sitoumushistorian yksinkertaistaminen
Suurissa ja monimutkaisissa projekteissa toimitushistoria voi olla ylikuormitettu muutoksilla, päivityksillä ja korjauksilla. Ja joidenkin näistä muutoksista ei yksinkertaisesti tarvitse olla olemassa. Joskus saatetaan sitoa tiedosto, joka ei hyödytä projektin edistymistä tai selkeyttä – kuten kokeellinen ominaisuus, joka ei toiminut, tai väliaikainen tiedosto, joka ei ole enää tervetullut.
Tällaisten tiedostojen poistaminen sitoumuksista voi merkittävästi häivyttää projektisi historiaa ja auttaa tiimin jäseniä ymmärtämään kehitysaikajanan. Jos olet osa tiimiä, selkeä ja ytimekäs sitoumushistoria auttaa tiimisi jäseniä mukautumaan projektisi kehitykseen ja pitää heidät ajan tasalla tuhlaamatta aikaa monimutkaisen koodin tulkitsemiseen.
Virheiden korjaaminen
Virheiden korjaaminen on ehkä yleisin syy tiedoston poistamiseen Gitissä tehdystä sitoumuksesta. Olet esimerkiksi saattanut myöhästyä projektissa ja lisännyt kiireessä vahingossa virheenkorjauslokitiedoston toimeksiantoon. Tai sitoutumisen jälkeen huomasit, että sisällytit version tiedostosta, joka ei ole lopullinen tai ajan tasalla, vaan vanhempi WIP. Vaihtoehtoisesti tiedosto voi olla jotain täysin ei-toivottua tai haitallista.
Tällaisissa tilanteissa tiedoston poistaminen toimituksesta säilyttää toimitushistoriasi eheyden ja pitää sen puhtaana tarpeettomista tai mahdollisesti haitallisista tiedostoista. Haluat varmistaa, että vain tarkoitettu sisältö pääsee lopulliseen luonnokseen.
Arkaluonteisten tai luokiteltujen tietojen poistaminen
On helpompaa kuin miltä saattaa näyttää, että arkaluontoisten tietojen tallentaminen vahingossa. Mutta se on virhe, jolla voi olla vakavia seurauksia. Esimerkiksi API-avaimet ovat nykyään iso osa monissa koodausprojekteissa, etenkin tekoälyn nousun ja verkkointegraation intensiivistyessä. Mutta API-avaimet ovat yksityisiä, ja ne on pidettävä poissa uteliailta silmiltä. Saatat työstää uutta ominaisuutta API:n avulla ja tallentaa vahingossa avaimen sisältävän tiedoston tai tietokannan tunnistetiedoilla varustetun määritystiedoston.
Tällainen valvonta voi aiheuttaa tietoturva-aukkoja, jotka saattavat paljastaa arkaluonteisia tietoja luvattomille henkilöille. Tällaisissa skenaarioissa tiedoston poistaminen sitoumuksesta on muutakin kuin pelkkä virheenkorjaus – se on jotain, joka sinun on tehtävä, varsinkin jos työskentelet osana tiimiä tai yritystä. Se muistuttaa, että olisit vahingossa jakanut luottamuksellisen asiakirjan julkisessa kansiossa ja siirtänyt sen nopeasti turvalliseen paikkaan.
Huomioitavaa
Joskus tiedoston poistaminen arkistosta ei ole niin yksinkertaista kuin haluaisit. Vältä näitä mahdollisia ongelmia.
Arkiston ristiriidat
Tiedostojen poistaminen julkisista tai jaetuista sitoumuksista ei ole jotain, mitä sinun pitäisi tehdä rennosti. Tiedoston luonteesta ja projektityypistä riippuen se voi turhauttaa tai hämmentää tiimisi jäseniä huomattavasti. Lisäksi se aiheuttaa ristiriitoja paikallisten tietovarastojen ja etälaitteen välillä. Joten ennen kuin poistat tiedoston, keskustele nopeasti tiimisi kanssa ja selitä heille, mitä olet tekemässä ja miksi.
Tämä voi olla yhtä yksinkertaista kuin viestin lähettäminen tiimisi chat-alustalla tai sen tuominen esiin stand-up-kokouksessa. Tämä heads-up ei ole vain kohteliaisuutta. Sen avulla tiimisi jäsenet voivat jatkaa työtään häiriintyneinä. Se avaa myös oven palautteelle – ehkä tiimikaverilla on syy säilyttää kyseinen tiedosto sitoumuksessa tai ehkä heillä on parempi ratkaisu käsillä olevaan ongelmaan.
Kadonneet tiedot
Kun tyhjennät arkistoasi, et halua heittää pois jotain tärkeää, etenkään suuremmissa projekteissa. Joten ennen kuin sitoudut poistamaan tiedostoa, katso toinen, jopa kolmas, tiedostoa, jota aiot poistaa.
Kysy itseltäsi: "Sisältääkö tämä tiedosto koodia, dataa tai tietoa, jota saatetaan tarvita myöhemmin?" Se on kuin kävisit läpi vanhan kansion tietokoneellasi; Joskus löydät tiedostoja, jotka tuntuivat tuolloin merkityksettömiltä, mutta joilla on nyt arvoa. Näin et joudu tilanteeseen, jossa etsit kiihkeästi koodinpätkää tai dataa, jota olet vahingossa aiemmin pitänyt tarpeettomaksi.
Palautus on parempi julkisille tietovarastoille
Kun käsitellään julkisia tietovarastoja, on usein parempi käyttää " git revert " -toimintoa tuhoamattomana tapana poistaa jotain arkistosta. Sen avulla voit kumota muutokset läpinäkyvällä ja jäljitettävällä tavalla, jota tiimisi jäsenet voivat helposti seurata.
Jos työskentelet avoimen lähdekoodin projekteissa tai missä tahansa julkisessa yhteistyössä, jossa muutokset voivat vaikuttaa useisiin osallistujiin, tämä pitää kaiken selvänä. Komento "git revert" luo käytännössä uuden sitoumuksen, joka kumoaa edelliseen tehdyt muutokset muuttamatta projektin historiaa. Se kunnioittaa muita yhteistyökumppaneita ja ylläpitää projektin aikajanan jatkuvuutta ja eheyttä. Korjaat avoimesti virhettä ryhmäprojektissa ja säilytät kaikkien panoksen. Ja projektin historia pysyy koskemattomana kaikkien nähtävillä ja ymmärrettävissä.
Pidä Gitin historia siistinä
On helppoa sisällyttää vahingossa tiedosto, jolla ei ole paikkaa Git-toimituksessa, Git-toimitukseen. Onneksi tämä sisällyttäminen on myös helppo peruuttaa. Riippuen siitä, mitä haluat, on olemassa erilaisia tapoja tämän saavuttamiseksi. Muista vain pitää tiimisi mielessä, jos olet tiimin jäsen, ja pidä paikalliset ja etätietovarastot johdonmukaisina.
Oletko koskaan vahingossa lisännyt väärän tiedoston Git-sitoumukseen? Mikä oli ratkaisusi? Jätä kommentti alle. Olemme aina innokkaita lukemaan niitä.