supposons que file1 et file2 soient tous les deux dans le répertoire courant (.), alors pourquoi git checkout .ne fonctionne pas, même avec l' -foption?
ryenus
9
Il semble rare que les choses soient aussi intuitives que ça :)
ragerdl
@ryenus Vous devez utiliser git checkout -- ..
Joseph238
Lol. C'est marrant.
Dmitriy Dokshin
N'a pas fonctionné pour moi en donnant l'erreur:, fatal: source directory is empty,seulement git reset --hardfait le travail.
mac13k
43
Si vous n'avez effectué aucune autre modification (que vous souhaitez conserver) depuis le dernier commit, vous pouvez faire
Le seul problème que j'ai eu avec cette réponse est qu'elle a laissé des copies pour file2 sur le disque.
user52472
9
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).
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.
Le premier fonctionne bien tant que vous n'avez pas poussé votre commit ou que quelqu'un ne vous a pas retiré.
CanSpice le
7
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 addssous un git statusappel.
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
Réponses:
Réponse non effrontée:
Consultez la documentation de git mv
la source
git checkout .
ne fonctionne pas, même avec l'-f
option?git checkout -- .
.fatal: source directory is empty,
seulementgit reset --hard
fait le travail.Si vous n'avez effectué aucune autre modification (que vous souhaitez conserver) depuis le dernier commit, vous pouvez faire
la source
git reset --hard
. Le simple fait de le déplacer vers l'arrière me semble une option plus sûre.fait l'affaire pour moi
la source
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:
la source
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.
la source
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 ungit 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.la source
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.
la source
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.
la source
Moins effrayant est d'aller au plus haut niveau du repo et de faire:
git reset
git checkout.
la source