Omylom som pridával súbory do systému Git pomocou príkazu:
git add myfile.txt
Zatiaľ som nespustil git commit
. Dá sa to nejako vrátiť späť, aby tieto súbory neboli zahrnuté do revízie?
Pred odovzdaním môžete zrušiť git add
pomocou
git reset <file>
čím ho odstránite z aktuálneho indexu (zoznam "about to be commit") bez toho, aby ste zmenili čokoľvek iné.
Môžete použiť
git reset
bez názvu súboru, aby ste zrušili všetky zmeny. To sa môže hodiť, keď je príliš veľa súborov na to, aby sa dali v rozumnom čase vypísať jeden po druhom.
V starých verziách systému Git sú vyššie uvedené príkazy ekvivalentné príkazom git reset HEAD <file>
, resp. git reset HEAD
a zlyhajú, ak je príkaz HEAD
nedefinovaný (pretože ste v úložisku ešte neurobili žiadne revízie) alebo nejednoznačný (pretože ste vytvorili vetvu s názvom HEAD
, čo je hlúposť, ktorú by ste nemali'robiť). Toto však bolo zmenené v Git 1.8.2, takže v moderných verziách Gitu môžete vyššie uvedené príkazy použiť ešte pred vykonaním prvej revízie:
(bez volieb alebo parametrov) sa používa na chybu, keď nemáte v histórii žiadne revízie, ale teraz vám poskytne prázdny index (aby zodpovedal neexistujúcej revízii, na ktorej ani nie ste).
Ak zadáte:
git status
Git vám povie, čo je naštartované atď., vrátane návodu, ako zrušiť štartovanie:
use "git reset HEAD <file>..." to unstage
Zistil som, že systém Git odvádza celkom dobrú prácu, keď ma v takýchto situáciách nabáda, aby som urobil správnu vec.
Poznámka: Posledné verzie systému Git (1.8.4.x) túto správu zmenili:
(use "git rm --cached <file>..." to unstage)