Kao softver za kontrolu verzija, Git omogućuje predvidljivo jednostavno vraćanje promjena. Ali čak je i koncept poništavanja promjene kompliciraniji nego što mislite na prvi pogled. Git repozitorij nije sasvim ista stvar kao skup datoteka na kojima radite lokalno. Poništavanje promjena znači razmotriti točno gdje ih želite poništiti.
gitprovjeri, git reset, i gitvratiti su naredbe koje vam mogu pomoći da se vratite na prethodnu verziju ne samo vaše baze koda, već i pojedinačnih datoteka. Upoznajte detalje ovih naredbi i brzo ćete skakutati po povijesti datoteka poput stručnjaka.
Što uopće znači resetiranje datoteke?
Važno je napomenuti da poništavanje datoteke može značiti različite stvari različitim ljudima u različitim okolnostima. Također, git reset naredba možda neće odgovarati vašim očekivanjima za ono što znači resetiranje.
Ponekad ćete htjeti poništiti lokalne promjene kako bi datoteka bila ponovno sinkronizirana s trenutnim spremištem. U drugim prilikama, možda ćete htjeti vratiti promjene koje ste već predali u spremište.
Sljedeći pojmovi ključni su za razumijevanje razlike: radno stablo, scensko područje i spremište. Datoteke koje uređujete lokalno pripadaju radnom stablu. Datoteke koje predate na kraju završavaju u spremištu. Kada ste u procesu prikupljanja promjena, postavljate datoteke. Datoteka može imati različit sadržaj na svakom od ovih mjesta.
Vidi također: Napredni vodič za Git
Resetiranje datoteke možda mislite kao poništavanje promjena. Ali stanje vaše datoteke će odrediti koje promjene zapravo poništavate. Očigledan slučaj je kada napravite neke promjene, izvršite ih, a zatim kasnije odlučite da ih više ne želite.
Drugi slučaj može biti da ste postavili datoteku i sada je želite poništiti.
Kako mogu vratiti prethodno predanu datoteku?
Pozabavimo se slučajem koji je lakše razumjeti: predali ste datoteku i sada želite vratiti promjene u njoj.
Naredba Git za to je, pomalo neintuitivno, imenovana provjeri. Možda ste koristili provjeri prije za promjenu grana, ali to je mali dio onoga što naredba može učiniti. Također vam omogućuje da ažurirate datoteke u svom radnom stablu kako bi odgovarale onima u bilo kojem trenutku u povijesti spremišta. To možete učiniti za određenu oznaku, granu ili čak određeni urez.
Najkorisniji oblik ove naredbe opće namjene je:
git checkout [ID urezivanja] -- put/do/datoteka
Ovdje prolazimo određenim putem (put/do/datoteka) koji identificira samo jednu datoteku. Također navodimo ID urezivanja da bismo dobili datoteku kakva je postojala u tom određenom predanju. Ova naredba će ažurirati datoteku samo u našem radnom stablu.
Imajte na umu da odjavljivanje starije verzije datoteke mijenja radnu kopiju, bez urezivanja ili čak postavljanja. Da biste u potpunosti dovršili poništavanje u spremištu, morat ćete postaviti datoteku i stvoriti novo urezivanje.
Vidi također: Kako pregledati povijest projekta pomoću git dnevnika
Kako mogu promijeniti ono što postavljam?
Druga vrsta poništavanja uključuje vaše područje uprizorenja. Ovo sadrži promjene koje ćete unijeti pored spremišta. Ako ste postavili verziju datoteke i kasnije odlučite da je ne želite uključiti u sljedeće urezivanje, najprije ćete je htjeti poništiti.
Možete koristiti git reset naredba za poništavanje inscenirane datoteke:
git reset GLAVA put/do/datoteke
Mogu li brzo poništiti lokalne promjene?
Da, možete poništiti promjene u lokalnoj datoteci prije nego što se postavi. Koristite sljedeću naredbu:
git checkout -- put/do/datoteka
Imajte na umu da je ovo slično vraćanju promjene spremišta, samo izostavlja ID urezivanja. Nakon što izvršite ovu naredbu, Git će poništiti sve promjene vaše radne kopije.
Što je s git restauracijom?
Kasnije verzije Gita imaju noviju naredbu: vratiti. Za jednostavne slučajeve o kojima smo ovdje raspravljali, možete koristiti sljedeće ekvivalente. Da poništite promjenu u spremištu:
git restauracija --izvor [id urezivanja] staza/do/datoteka
Za descendiranje datoteke koristite:
git restauracija --postupna staza/do/datoteke
I da poništite promjene radne kopije:
git vraćanje puta/do/datoteke
Ovladavanje Git-ovom snagom verzije je neprocjenjivo
Iako se resetiranje datoteke može činiti uobičajenom stvari, otkrit ćete da se to događa prilično rijetko u praksi. Vjerojatnije je da ćete poništiti čitava urezivanja, a ne pojedinačne datoteke. Međutim, u slučajevima kada to trebate učiniti, Git to barem čini prilično jednostavnim.
Koristite ove Git naredbe za izvođenje operacija kao što je uklanjanje datoteke iz urezivanja.
Pročitajte dalje
- Programiranje
- GitHub
- Web razvoj
- Programiranje
Bobby je tehnološki entuzijast koji je većinu dva desetljeća radio kao programer softvera. Strastven je za igranje igara, radi kao glavni urednik u Switch Player Magazine i uronjen je u sve aspekte online izdavaštva i web razvoja.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu