Question git récupérer le fichier supprimé où aucune validation n'a été faite après la suppression


J'ai supprimé des fichiers.

Je n'ai pas encore commis.

Je veux réinitialiser mon espace de travail pour récupérer les fichiers.

j'ai fait un git checkout ..

Mais les fichiers supprimés sont toujours manquants.

Et git status montre:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    cc.properties
#   deleted:    store/README
#   deleted:    store/cc.properties
#

Pourquoi pas git checkout . réinitialiser l'espace de travail à HEAD?


604
2017-08-14 16:27


origine


Réponses:


La sortie vous indique ce que vous devez faire. git reset HEAD cc.properties etc.

Cela va désynchroniser l'opération rm. Après cela, courir un git status encore vous dira que vous devez faire un git checkout -- cc.properties pour récupérer le fichier.

Mettre à jour: J'ai ceci dans mon fichier de configuration

$ git config alias.unstage
reset HEAD

que j'utilise habituellement pour déconnecter les choses.


620
2017-08-14 16:29



Vous avez organisé la suppression, vous devez donc faire:

git checkout HEAD cc.properties store/README store/cc.properties

git checkout . ne vérifie que depuis l'index où la suppression a déjà été effectuée.


163
2017-08-14 16:31



Faites juste git checkout path/to/file-I-want-to-bring-back.txt


130
2018-01-23 11:57



Pour récupérer tout non organisé suppressions à la fois, automatiquement, sans spécifier chaque chemin unique:

git ls-files -d | xargs git checkout --

Pour récupérer tout mise en scène suppressions à la fois, automatiquement, sans spécifier chaque chemin unique:

git status | grep 'deleted:' | awk '{print $2}' | xargs git checkout --

111
2017-11-12 17:29



Puisque vous faites un git checkout ., il semble que vous essayez de restaurer votre branche au dernier état de validation.

Vous pouvez y parvenir avec un git reset HEAD --hard

Attention

Cela peut supprimer toutes vos dernières modifications et annuler vos modifications, par exemple vous pouvez perdre votre travail. Il mai soyez ce que vous voulez, mais regardez les docs assurer.


62
2017-12-21 19:54



Voici la commande qui m'a aidé sur mon mac. J'ai essayé quelques autres solutions, mais elles n'ont pas fonctionné pour moi.

Version Git sur OSX Mavericks

mac-pro:main chris$ git version
git version 1.8.5.2 (Apple Git-48)

Commander

git checkout HEAD -- path/to/file/file.cc

25
2018-03-15 20:55



Si vous avez utilisé

git rm filename

supprimer un fichier puis

git checkout path/to/filename

ne fonctionne pas, alors dans ce cas

git checkout HEAD^ filename

devrait marcher


24
2018-03-31 15:21