Jeg tilføjede fejlagtigt filer til Git ved hjælp af kommandoen:
git add myfile.txt
Jeg har endnu ikke kørt git commit
. Er der en måde at fortryde dette på, så disse filer ikke vil blive inkluderet i commit?
Du kan fortryde git add
før commit med
git reset <file>
hvilket vil fjerne det fra det aktuelle indeks (listen "about to be commit") uden at ændre noget andet.
Du kan bruge
git reset
uden noget filnavn for at fjerne alle ændringer. Dette kan være praktisk, når der er for mange filer til at blive listet en efter en på en rimelig tid.
I gamle versioner af Git svarer ovenstående kommandoer til henholdsvis git reset HEAD <file>
og git reset HEAD
, og vil fejle hvis HEAD
er udefineret (fordi du endnu ikke har lavet nogen commits i dit repository) eller tvetydig (fordi du har oprettet en branch kaldet HEAD
, hvilket er en dum ting, som du ikke bør gøre). Dette blev dog ændret i Git 1.8.2, så i moderne versioner af Git kan du bruge ovenstående kommandoer, selv før du laver dit første commit:
"git reset" (uden indstillinger eller parametre) plejede at give fejl, når du ikke har nogen commits i din historik, men det giver dig nu et tomt indeks (for at matche ikke-eksisterende commit du ikke engang er på).
Hvis du skriver:
git status
fortæller Git dig, hvad der er staged osv., herunder instruktioner om, hvordan du kan ophæve staged:
use "git reset HEAD <file>..." to unstage
Jeg synes Git gør et ret godt stykke arbejde med at skubbe mig til at gøre det rigtige i situationer som denne.
Note: Nyere Git-versioner (1.8.4.x) har ændret denne meddelelse:
(use "git rm --cached <file>..." to unstage)