Jako software pro správu verzí umožňuje Git předvídatelně snadné vrácení změn. Ale i koncept zrušení změny je složitější, než byste si mohli nejprve myslet. Repozitář Git není úplně to samé jako sada souborů, na kterých pracujete lokálně. Vrácení změn znamená zvážit, kde přesně je chcete vrátit.

gitPřekontrolovat, reset git, a gitobnovit jsou příkazy, které vám mohou pomoci vrátit se k předchozí verzi nejen vaší kódové základny, ale také jednotlivých souborů. Seznamte se s detaily těchto příkazů a během okamžiku budete skákat po historii souborů jako expert.

Co vůbec znamená resetování souboru?

Je důležité si uvědomit, že resetování souboru může pro různé lidi za různých okolností znamenat různé věci. Také reset git příkaz nemusí odpovídat vašim očekáváním, co znamená resetování.

Někdy budete chtít vrátit zpět místní změny, aby byl soubor zpět synchronizován s aktuálním úložištěm. Při jiných příležitostech můžete chtít vrátit zpět změny, které jste již zavázali do úložiště.

Následující termíny jsou klíčem k pochopení rozdílu: pracovní strom, pracovní oblast a úložiště. Soubory, které upravujete místně, patří do pracovního stromu. Soubory, které odevzdáte, nakonec skončí v úložišti. Když jste v procesu shromažďování změn, vytváříte soubory. Soubor může mít v každém z těchto umístění jiný obsah.

Viz také: Pokročilý výukový program Git

Resetování souboru můžete považovat za vrácení změn. Ale stav vašeho souboru určí, jaké změny skutečně vracíte. Zřejmý případ je, když provedete nějaké změny, potvrdíte je a později se rozhodnete, že je už nechcete.

Dalším případem může být, že jste vytvořili soubor a nyní jej chcete zrušit.

Jak vrátím dříve přijatý soubor?

Pojďme se vypořádat s případem, který je srozumitelnější: potvrdili jste soubor a nyní chcete vrátit změny v něm.

Příkaz Git, který to provede, je poněkud neintuitivně pojmenován Překontrolovat. Možná jste použili Překontrolovat před přepnutím větví, ale to je malá část toho, co příkaz umí. Umožňuje vám také aktualizovat soubory ve vašem pracovním stromu tak, aby odpovídaly souborům v libovolném bodě historie úložiště. Můžete to udělat pro konkrétní značku, větev nebo dokonce konkrétní potvrzení.

Nejužitečnější, univerzální forma tohoto příkazu je:

git checkout [ID potvrzení] -- cesta/k/souboru

Zde procházíme konkrétní cestou (cesta/k/souboru), který identifikuje pouze jeden soubor. Uvádíme také ID odevzdání, abychom získali soubor tak, jak existoval v tomto konkrétním odevzdání. Tento příkaz aktualizuje soubor pouze v našem pracovním stromu.

Všimněte si, že vyzvednutí starší verze souboru upraví pracovní kopii, aniž by ji bylo nutné odevzdat nebo dokonce připravit. Chcete-li plně dokončit vrácení zpět do úložiště, budete muset soubor připravit a vytvořit nový odevzdání.

Viz také: Jak zkontrolovat historii projektu pomocí protokolu git

Jak změním to, co inscenuji?

Druhý typ zpět se týká vaší pracovní oblasti. Toto obsahuje změny, které provedete vedle úložiště. Pokud jste vytvořili verzi souboru a později se rozhodnete, že ji nechcete zahrnout do dalšího odevzdání, budete ji chtít nejprve zrušit.

Můžete použít reset git příkaz pro zrušení fáze připraveného souboru:

git reset HEAD cestu/k/souboru

Mohu rychle vrátit zpět místní změny?

Ano, změny v místním souboru můžete vrátit zpět, než bude připraven. Použijte následující příkaz:

git checkout -- cesta/k/souboru

Všimněte si, že je to podobné jako vrácení změny úložiště, jen vynechává ID odevzdání. Jakmile tento příkaz provedete, Git vrátí zpět všechny změny ve vaší pracovní kopii.

A co git restore?

Novější verze Gitu mají novější příkaz: obnovit. Pro jednoduché případy, které jsme zde probrali, můžete použít následující ekvivalenty. Chcete-li vrátit změnu v úložišti:

git restore --source [ID potvrzení] cesta/k/souboru

Pro zrušení fáze souboru použijte:

git restore --staged cesta/k/souboru

A chcete-li vrátit změny pracovní kopie:

git obnovení cesta/k/souboru

Zvládnutí verzovacího výkonu Gitu je neocenitelné

Ačkoli se resetování souboru může zdát jako běžná věc, zjistíte, že se to v praxi stává velmi zřídka. Je pravděpodobnější, že vrátíte zpět celé odevzdání spíše než jednotlivé soubory. Nicméně v případech, kdy to potřebujete udělat, Git to alespoň docela zjednoduší.

Jak odstranit soubor z Commit v Git

Pomocí těchto příkazů Git můžete provádět operace, jako je odstranění souboru z odevzdání.

Přečtěte si další

PodíltweetE-mailem
Související témata
  • Programování
  • GitHub
  • Vývoj webu
  • Programování
O autorovi
Bobby Jack (Publikováno 63 článků)

Bobby je technologický nadšenec, který většinu dvou desetiletí pracoval jako softwarový vývojář. Je nadšený pro hraní her, pracuje jako šéfredaktor časopisu Switch Player Magazine a je ponořen do všech aspektů online publikování a vývoje webu.

Více od Bobbyho Jacka

Přihlaste se k odběru našeho newsletteru

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!

Chcete-li se přihlásit k odběru, klikněte sem