Vous n'avez pas à les "télécharger à nouveau", car tout l'historique du référentiel existe localement lorsque vous utilisez Git.
cdhowie
savez-vous comment les obtenir du local?
Charlie Parker
Réponses:
164
Puisque git est un VCS distribué, votre référentiel local contient toutes les informations. Aucun téléchargement n'est nécessaire; il vous suffit d'extraire le contenu que vous souhaitez du référentiel à portée de main.
Si vous n'avez pas validé la suppression, vérifiez simplement les fichiers de votre commit actuel:
git checkout HEAD <path>
Si vous avez validé la suppression, vous devez extraire les fichiers d'un commit qui les contient. Ce serait probablement le commit précédent:
git checkout HEAD^ <path>
mais s'il est ncommité il y a déjà, utilisez HEAD~nou lancez simplement gitk, trouvez le SHA1 du commit approprié et collez-le.
juste comme un commentaire secondaire, cela fonctionne également pour un répertoire complet, ce n'est pas spécial ou spécifique à un seul fichier (cela a fonctionné quand je l'ai essayé au moins). Thnx btw.
Charlie Parker
5
NB le <path>est obligatoire, même si juste un .point pour le répertoire courant. Mais la "branche" ( HEADdans l'exemple ci-dessus) est facultative. Comme avec tant de commandes Git, ni la sortie ni l'aide ne sont utiles.
Attention cependant à utiliser la git reset --hardméthode car cela ramènera l'arbre entier à l'emplacement où vous avez mis HEAD / HEAD ^ / HEAD ~ n et il le fera sans préjudice et perdra potentiellement beaucoup de commits ...
g19fanatic
git checkout filename était la réponse pour moi :)
Ruub
git checkout filename crée juste un fichier vide
mrek
placé dans le dossier souhaité et a git checkount .fonctionné comme un charme!
hzitoun
21
Si vous avez supprimé plusieurs fichiers localement mais non validés, vous pouvez forcer l'extraction
Comme nous le voyons dans la sortie «Déjà à jour», la personne qui pose cette question n'a rien commis ces derniers temps. Devriez-vous peut-être spécifier que git checkout -f HEAD est DANGEREUX? Comme cela pourrait annuler les modifications locales qui n'ont pas été validées (la restauration des fichiers précédents étant le résultat positif, la perte des modifications sur les fichiers modifiés le résultat négatif).
Lionel Trebuchon
15
Si vous avez supprimé plusieurs fichiers localement et n'avez pas validé les modifications, accédez au chemin de votre référentiel local, ouvrez le shell git et saisissez.
$ git checkout HEAD .
Tous les fichiers supprimés avant le dernier commit seront récupérés.
Ajouter "." récupérera tous les fichiers supprimés dans le référentiel actuel, dans leurs chemins respectifs.
Réponses:
Puisque git est un VCS distribué, votre référentiel local contient toutes les informations. Aucun téléchargement n'est nécessaire; il vous suffit d'extraire le contenu que vous souhaitez du référentiel à portée de main.
Si vous n'avez pas validé la suppression, vérifiez simplement les fichiers de votre commit actuel:
Si vous avez validé la suppression, vous devez extraire les fichiers d'un commit qui les contient. Ce serait probablement le commit précédent:
mais s'il est
n
commité il y a déjà, utilisezHEAD~n
ou lancez simplementgitk
, trouvez le SHA1 du commit approprié et collez-le.la source
<path>
est obligatoire, même si juste un.
point pour le répertoire courant. Mais la "branche" (HEAD
dans l'exemple ci-dessus) est facultative. Comme avec tant de commandes Git, ni la sortie ni l'aide ne sont utiles.git checkout filename
git reset --hard
pourrait faire l'affaire aussila source
git reset --hard
méthode car cela ramènera l'arbre entier à l'emplacement où vous avez mis HEAD / HEAD ^ / HEAD ~ n et il le fera sans préjudice et perdra potentiellement beaucoup de commits ...git checkount .
fonctionné comme un charme!Si vous avez supprimé plusieurs fichiers localement mais non validés, vous pouvez forcer l'extraction
la source
Si vous avez supprimé plusieurs fichiers localement et n'avez pas validé les modifications, accédez au chemin de votre référentiel local, ouvrez le shell git et saisissez.
Tous les fichiers supprimés avant le dernier commit seront récupérés.
Ajouter "." récupérera tous les fichiers supprimés dans le référentiel actuel, dans leurs chemins respectifs.
Pour plus de détails, consultez la documentation .
la source
Vous devez extraire une version précédente avant de supprimer les fichiers. Essayez
git checkout HEAD^
de récupérer la dernière révision.la source
En outre, j'ajoute à faire les étapes suivantes afin que le dépôt git soit correctement lié à l'EDI:
J'espère que cela a été utile!!
la source