Quelle est la bonne façon d'annuler un changement de nom dans git, comme:
git mv file1 file2
Quelle est la bonne façon d'annuler un changement de nom dans git, comme:
git mv file1 file2
Réponses:
Réponse non effrontée:
git mv file2 file1
Met à jour automatiquement l'index des anciens et des nouveaux chemins.
Consultez la documentation de git mv
git checkout .
ne fonctionne pas, même avec l' -f
option?
git checkout -- .
.
fatal: source directory is empty,
seulement git reset --hard
fait le travail.
Si vous n'avez effectué aucune autre modification (que vous souhaitez conserver) depuis le dernier commit, vous pouvez faire
git reset --hard
git reset --hard
. Le simple fait de le déplacer vers l'arrière me semble une option plus sûre.
Dans mon cas, j'ai déplacé un dossier entier, puis j'ai réalisé que je n'aurais pas dû.
J'ai beaucoup aimé la réponse de @Dave Konopka, mais je n'ai pas eu beaucoup de succès avec cette approche (peut-être ma version de GIT (1.8.4)? Mes fichiers étaient toujours supprimés. J'avais d'autres modifications sur la pile que je ne voulais pas perdre (malheureusement).
J'ai réussi à faire ceci:
git reset moved_folder
git checkout original_folder
Cela dépend de ce que vous voulez accomplir. Si vous voulez qu'il apparaisse comme si le fichier n'avait jamais été déplacé, vous pouvez réinitialiser (ou rebaser) avant le déplacement. Si vous ne vous souciez pas de l'historique, alors déplacez-le simplement.
Si vous avez accidentellement renommé un grand nombre de fichiers et que vous souhaitez revenir à votre point de départ, supprimez tous les fichiers renommés qui apparaissent adds
sous un git status
appel.
Une fois que vous avez supprimé tous les fichiers modifiés, vous pouvez exécuter git checkout -- *
pour récupérer les noms de fichiers d'origine localement.
git reset HEAD file2
git checkout -- file1
rm file2
La première commande désactive le fichier2 mais en laisse une copie. La deuxième commande restaure le fichier d'origine et la troisième supprime le nouveau fichier.
L'astuce que j'ai utilisée était de faire un git stash pour annuler toutes mes modifications (ce qui inclut la restauration des fichiers mv'd), puis de supprimer le stash avec git stash drop.
git mv file2 file1