Je rejette accidentellement mes modifications sur les fichiers de mon arbre de travail local via git checkout. Les fichiers ne sont pas mis en scène pour le moment. Est-il possible «d'annuler» ce paiement?
Je rejette accidentellement mes modifications sur les fichiers de mon arbre de travail local via git checkout. Les fichiers ne sont pas mis en scène pour le moment. Est-il possible «d'annuler» ce paiement?
Réponses:
Je crois que si un fichier est modifié mais pas encore ajouté (mis en scène), il est purement "privé".
Cela signifie qu'il ne peut pas être restauré par GIT s'il est écrasé par l'index ou la version HEAD (sauf si vous avez une copie de votre travail actuel quelque part). "
Un contenu "privé" est uniquement visible dans votre répertoire actuel, mais n'est en aucun cas enregistré dans Git.
git checkout --
), je m'attendrais à ce qu'il puisse annuler cette opération, peut-être via le reflog
. Est-ce une mauvaise attente?
git checkout folders/subfolders/file
mais appuyez sur Entrée par accident après avoir folder
perdu tout mon travail. / est à 1 cm de l'entrée sur mon clavier et je passe souvent d'une machine à l'autre avec différentes dispositions de clavier, donc il y a souvent 10 à 15 minutes de mes doigts pour s'habituer à de nouvelles positions. Difficile de croire en 2018 que git supprime les fichiers même s'il dit dans le livre git que git fait de son mieux pour ne pas perdre de travail.
Si vous utilisez un IDE «professionnel», il est fort probable que vous puissiez restaurer des fichiers à partir d'un historique local. Dans Rubymine par exemple, vous pouvez faire un clic droit sur les fichiers et regarder un historique des changements indépendamment des changements de git, m'a sauvé quelques fois maintenant ^^
Si vous travaillez dans un éditeur tel que Sublime Text et que le fichier en question est toujours ouvert, vous pouvez appuyer sur ctrl + z, et il reviendra à l'état qu'il avait avant git checkout.
Malheureusement, vos modifications sont perdues. Vos modifications privées sont simplement écrasées. Sauf si vous l'avez fait git stash
avant de passer à la caisse ...
Prenez-le du bon côté: vous pouvez maintenant mettre en œuvre les choses encore mieux;)
Vérifiez l'histoire locale dans votre IDE.
Vous développez sous OS X? Vous utilisez Xcode? Vous aurez probablement de la chance!
Comme décrit dans un commentaire de qungu , OS X maintient un historique des versions enregistrées automatiquement des fichiers, même si vous n'utilisez pas Time Machine .
Donc, si vous avez époustouflé vos changements locaux non mis en scène avec un insouciant git checkout .
, voici comment vous pouvez probablement récupérer tout votre travail.
Si quelqu'un trouve que ce thread a détruit du travail dans XCode, il existe un moyen d'obtenir l'historique de l'enregistrement automatique. XCode lui-même n'a pas d'entrée de menu pour voir l'historique de sauvegarde automatique, mais il le stocke. Si vous ouvrez les fichiers en question dans TextEdit, vous pouvez revenir en arrière et parcourir l'historique de l'enregistrement automatique sous Fichier> Rétablir.
Ce qui est génial, et récupéré environ une journée de travail pour moi, hier.
Vous pourriez vous demander: "Pourquoi l'interface de ligne de commande git, le premier VCS utilisé pour l'ingénierie logicielle dans2016 2017 20182019, au moins sauvegarder les fichiers avant de les épater? Comme, vous savez, des outils logiciels bien écrits depuis environ trois décennies. "
Ou peut-être vous demandez-vous: "Pourquoi cette fonctionnalité d'historique de fichiers incroyablement impressionnante est-elle accessible dans TextEdit mais pas Xcode là où j'en ai réellement besoin?"
… Et ces deux éléments, je pense, vous en diront beaucoup sur notre industrie. Ou peut-être irez-vous réparer ces outils. Ce serait super.
Model
malheureusement
Dans VSCODE ctrl + z (annuler) a fonctionné pour moi
Je l'ai fait à la git checkout .
place de git add .
et toutes mes modifications de fichiers ont été perdues.
Mais maintenant, en utilisant command + z
dans mon mac, j'ai récupéré les modifications et enregistré un ton de travail pour moi.
Au cas où vous auriez déjà caché les modifications plus tôt (par exemple, avant le rebasage), cela vous aidera probablement
Comment récupérer une cachette abandonnée dans Git?
même si vous avez déjà «caché» les modifications.
Un sauveur efficace pour ce genre de situation est Time Machine (OS X) ou un système de sauvegarde basé sur le temps similaire. Cela m'a sauvé plusieurs fois parce que je peux revenir en arrière et restaurer un seul fichier.
Je viens de me faire arriver cela, j'ai extrait un dossier entier contenant des heures de travail! Heureusement, j'ai découvert que mon IDE Netbeans conserve un historique de chaque fichier, ce qui m'a permis de récupérer 99% du contenu même si j'avais besoin de réparer quelques choses manuellement.
J'ai normalement tout mon travail dans un dossier Dropbox. Cela m'assure que le dossier actuel serait disponible en dehors de ma machine locale et de Github. Je pense que c'est mon autre étape pour garantir un "contrôle de version" autre que git. Vous pouvez suivre ceci afin de restaurer votre fichier aux versions précédentes de vos fichiers dropbox
J'espère que cela t'aides.
Techniquement oui. Mais seulement sur certains cas. Si, par exemple, vous avez la page de code et que vous cliquez sur git checkout, et que vous vous rendez compte que vous avez accidentellement extrait la mauvaise page ou quelque chose. Accédez à la page et cliquez sur Annuler. (pour moi, commande + z), et il reviendra exactement là où vous étiez avant de frapper le bon vieux git checkout.
Cela ne fonctionnera pas si votre page a été fermée et que vous cliquez sur git checkout. Cela ne fonctionne que si la page de codes réelle est ouverte
Si vous travaillez avec un terminal / cmd rapide ouvert et utilisé toutes les commandes git qui aurait montrai les changements Unstaged ( diff
, add -p
, checkout -p
, etc.), et n'ont pas fermé le terminal / cmd invite depuis, vous trouverez les changements Unstaged sont toujours disponibles si vous faites défiler jusqu'à l'endroit où vous avez exécuté les commandes git susmentionnées.
Mec,
disons que vous êtes un gars très chanceux comme moi, retournez dans votre éditeur et faites une annulation (commande + Z pour mac), vous devriez voir votre contenu perdu dans le fichier. J'espère que cela vous a aidé. Bien sûr, cela ne fonctionnera que pour les fichiers existants.
Peut-être que vos modifications ne sont pas perdues. Vérifiez "git reflog"
Je cite l'article ci-dessous:
"En gros, chaque action que vous effectuez à l'intérieur de Git où les données sont stockées, vous pouvez les trouver à l'intérieur du reflog. Git essaie vraiment de ne pas perdre vos données, donc si pour une raison quelconque vous pensez que c'est le cas, il y a de fortes chances que vous puissiez les extraire en utilisant git reflog "
Voir les détails:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
git reflog
ici, j'ai trouvé cette réponse lorsque je cherchais à annuler un git checkout HEAD .
- j'avais l'intention de taper git reset HEAD .
- je venais de faire un 'git reset --soft HEAD ~ 1' et je ne savais pas à propos de la git reflog
alors j'ai pu récupérer le travail que j'avais fait :)