Qual è il modo giusto per annullare una rinomina in git, come:
git mv file1 file2
Qual è il modo giusto per annullare una rinomina in git, come:
git mv file1 file2
Risposte:
Risposta non sfacciata:
git mv file2 file1
Aggiorna automaticamente l'indice per i percorsi vecchi e nuovi.
Controlla la documentazione di git mv
git checkout .
non funziona, anche con l' -f
opzione?
git checkout -- .
.
fatal: source directory is empty,
:, ha git reset --hard
fatto solo il lavoro.
Se non hai apportato altre modifiche (che desideri conservare) dall'ultimo commit, puoi farlo
git reset --hard
git reset --hard
. Spostarlo all'indietro mi sembra un'opzione più sicura.
Nel mio caso, ho spostato un'intera cartella, quindi ho capito che non avrei dovuto.
Mi è piaciuta molto la risposta di @Dave Konopka, ma non ho avuto molto successo con questo approccio (forse la mia versione di GIT (1.8.4)? I miei file erano ancora mostrati come eliminati. Avevo altre modifiche nello stack che non volevo perdere (purtroppo).
Ho avuto successo facendo questo:
git reset moved_folder
git checkout original_folder
Dipende da cosa vuoi realizzare. Se si desidera che appaia come se il file non fosse mai stato spostato, è possibile reimpostare (o rifare) a prima dello spostamento. Se non ti interessa la storia, spostala indietro.
Se hai rinominato accidentalmente un numero elevato di file e desideri tornare al punto di partenza, elimina tutti i file rinominati che compaiono come adds
in una git status
chiamata.
Dopo aver eliminato tutti i file modificati, è possibile eseguire git checkout -- *
per recuperare localmente i nomi dei file originali.
git reset HEAD file2
git checkout -- file1
rm file2
Il primo comando sblocca file2 ma ne lascia una copia. Il secondo comando ripristina il file originale e il terzo elimina il nuovo file.
Il trucco che ho usato è stato fare una scorta git per annullare tutte le mie modifiche (che include il ripristino dei file mv'd) e quindi eliminare la scorta con git stash drop.
git mv file2 file1