Ho aggiunto erroneamente dei file a Git usando il comando:
git add myfile.txt
Non ho ancora eseguito git commit
. C'è un modo per annullarlo, così questi file non saranno inclusi nel commit?
Puoi annullare git add
prima del commit con
git reset <file>
che lo rimuoverà dall'indice corrente (l'elenco "circa da commettere") senza cambiare nient'altro.
Potete usare
git reset
senza alcun nome di file per annullare tutte le modifiche dovute. Questo può essere utile quando ci sono troppi file da elencare uno per uno in un tempo ragionevole.
Nelle vecchie versioni di Git, i comandi di cui sopra sono equivalenti a git reset HEAD <file>
e git reset HEAD
rispettivamente, e falliranno se HEAD
è indefinito (perché non hai ancora fatto alcun commit nel tuo repository) o ambiguo (perché hai creato un ramo chiamato HEAD
, che è una cosa stupida che non dovresti fare). Questo è stato cambiato in Git 1.8.2, però, quindi nelle versioni moderne di Git puoi usare i comandi di cui sopra anche prima di fare il tuo primo commit:
"git reset" (senza opzioni o parametri) usato per dare errore quando non hai alcun commit nella tua storia, ma ora ti dà un indice vuoto (per corrispondere a commit inesistenti su cui non siete nemmeno).
Se si digita:
git status
Git vi dirà cosa è in scena, ecc., incluse le istruzioni su come annullare la scena:
use "git reset HEAD <file>..." to unstage
Trovo che Git faccia un buon lavoro per spingermi a fare la cosa giusta in situazioni come questa.
Nota: Le recenti versioni di Git (1.8.4.x) hanno cambiato questo messaggio:
(use "git rm --cached <file>..." to unstage)