Tévesen adtam hozzá fájlokat a Githez a parancs segítségével:
git add myfile.txt
Még nem futtattam a git commit
parancsot. Van rá mód, hogy ezt visszacsináljam, hogy ezek a fájlok ne kerüljenek bele a commitba?
Visszacsinálhatod a git add
-t a commit előtt a következővel
git reset <file>
ami eltávolítja az aktuális indexből (a "about to be commit" listából) anélkül, hogy bármi mást megváltoztatna.
Használhatja a
git reset
fájlnév nélkül, hogy az összes esedékes módosítást visszavonja. Ez akkor jöhet jól, ha túl sok fájl van ahhoz, hogy ésszerű idő alatt egyesével felsoroljuk őket.
A Git régi verzióiban a fenti parancsok a git reset HEAD <file>
és a git reset HEAD
parancsokkal egyenértékűek, és sikertelenek lesznek, ha a HEAD
nem definiált (mert még nem csináltál commitot a repositoryban) vagy nem egyértelmű (mert létrehoztál egy HEAD
nevű ágat, ami egy hülyeség, amit nem szabadna csinálni). Ez a Git 1.8.2-ben azonban megváltozott, így a Git modern verzióiban már az első commit elkészítése előtt is használhatod a fenti parancsokat:
"git reset" (opciók vagy paraméterek nélkül) régen hibaüzenet volt, amikor ha nincs egyetlen commit sem az előzmények között, de most már a következő eredményt adja egy üres indexet (a nem létező commithoz, amin még csak nem is vagy).
Ha beírja:
git status
A Git megmondja, hogy mi van staged, stb., beleértve a stage feloldásának utasításait is:
use "git reset HEAD <file>..." to unstage
Úgy találom, hogy a Git elég jó munkát végez abban, hogy az ilyen helyzetekben a helyes dolgokra ösztökéljen.
Jegyzet: A legújabb Git verziók (1.8.4.x) megváltoztatták ezt az üzenetet:
(use "git rm --cached <file>..." to unstage)
A git remove
vagy git rm
használható erre a célra, a --cached
jelzővel. Próbáld ki:
git help rm