Mi sono impegnato nel mio ramo.
Ho aggiunto per caso .tar.gz
file in esso che voglio ignorare.
Poi l'ho fatto
git reset --soft HEAD^
Ora il mio commit è andato
- I file modificati sono come sono
- Ma i file non tracciati vengono ora mostrati come nuovo file
Come posso tornare indietro per indicare dove arrivano i nuovi file come file non tracciati
risposte:
1 per risposta № 1UN git reset --soft
si muove solo HEAD
, ma non ripristinare l'indice.
UN git reset @^
si muove HEAD
e reimpostare l'indice, rendendo nuovamente non tracciati quei file.
Più su quelli reset
opzioni a "Puoi spiegare cosa fa “git reset” in inglese?".
Vedi anche una buona illustrazione in "Differenza tra git reset morbido, misto e difficile": quello che vuoi è ripristinare HEAD e indicizzare, non l'albero di lavoro.
Il Utente OP3646965 chiede i commenti:
L'ho già giustiziato git reset --soft
, posso fare git reset @^
o tornerà indietro di un altro commit?
Quindi è possibile eseguire un ripristino solo per i file (non HEAD, che fa già riferimento al commit corretto)
cd /path/to/folder/containing/tar.gz_files
git reset -- *.tar.gz
Notare la doppio trattino (--
) tra il comando git e i file.
0 per risposta № 2
Non puoi effettivamente eliminare i file tramite un reset git, il che significa che se hai aggiunto nuovi file nel tuo commit recente, anche se lo fai, git reset --hard HEAD~1
, i file che sono stati aggiunti nell'ultimo commit non verranno eliminati. Questa è una precauzione essenziale e necessaria in git. Cosa succede se, nella speranza di ripristinare la directory in HEAD~1
git elimina accidentalmente i file non tracciati che erano non destinato ad essere eliminato?
Tu puoi fare git reset --hard HEAD~1
per ripristinare lo stato dei file esistenti. Ma se hai aggiunto nuovi file nel tuo ultimo commit, devi eliminarlo tu stesso.
0 per risposta № 3
git reset filename
ripristinerà lo stato di filename
a qualunque cosa sia attualmente in fase di commit, ovvero rimuoverà in scena un file.