Ik heb per ongeluk bestanden aan Git toegevoegd met het commando:
git add myfile.txt
Ik heb git commit
nog niet uitgevoerd. Is er een manier om dit ongedaan te maken, zodat deze bestanden niet in de commit worden opgenomen?
Je kunt git add
ongedaan maken voordat je commit met
git reset <file>
wat het zal verwijderen van de huidige index (de "about to be committed" lijst) zonder iets anders te veranderen.
U kunt gebruik maken van
git reset
zonder bestandsnaam gebruiken om alle verschuldigde wijzigingen ongedaan te maken. Dit kan van pas komen als er te veel bestanden zijn om ze één voor één in een redelijke tijd op te sommen.
In oude versies van Git, zijn de bovenstaande commando's equivalent aan respectievelijk git reset HEAD <file>
en git reset HEAD
, en zullen falen als HEAD
ongedefinieerd is (omdat je nog'geen commits in je repository hebt gemaakt) of dubbelzinnig (omdat je een branch genaamd HEAD
hebt aangemaakt, wat een stom ding is dat je'niet zou moeten doen). Dit is echter veranderd in Git 1.8.2, dus in moderne versies van Git kun je de bovenstaande commando's gebruiken zelfs voordat je je eerste commit maakt:
"git reset" (zonder opties of parameters) gebruikt om een foutmelding te geven als je geen commits in je historie hebt, maar het geeft je nu een lege index (die overeenkomt met een niet bestaande commit waar je niet eens op zit).
Als je typt:
git status
zal Git je vertellen wat er ge-staged is, enz., inclusief instructies over hoe je de staging ongedaan kunt maken:
use "git reset HEAD <file>..." to unstage
Ik vind dat Git goed werk levert door me aan te sporen het juiste te doen in dit soort situaties.
Note: Recente Git versies (1.8.4.x) hebben deze boodschap veranderd:
(use "git rm --cached <file>..." to unstage)