Eclipse git checkout (aka, revenir)

139

Est-il possible de faire l'équivalent de git checkoutdepuis Eclipse en utilisant le plugin EGit?

J'ai un fichier qui a été modifié. Je souhaite annuler les modifications et rétablir le fichier à ce qu'il y a dans le référentiel source. Dans Subversion, cela s'appelle revenir en arrière. Dans git, l'équivalent est checkout.

Je ne trouve aucun élément de menu sous Équipe qui ressemble à un paiement ou à un retour. J'utilise EGit 0.6.0.

Steve Kuo
la source
6
git craint! Il ne vous montrera pas ce que vous êtes sur le point de rétablir avant de le rétablir. Subversion vous donnera une jolie fenêtre de confirmation avec une liste des fichiers que vous êtes sur le point de restaurer. Ainsi, vous pouvez choisir ceux que vous souhaitez annuler ou annuler sur place. Dommage pour le git super puissant.
JohnPristine
5
@JohnPristine Le plugin git Eclipse (egit) est celui qui afficherait une fenêtre de confirmation, plutôt que git lui-même.
Brad Cupit
Cliquez avec le bouton droit sur le fichier que vous souhaitez restaurer, puis sélectionnez «Écraser». Et je suis d'accord, Git est nul.
DhafirNz
En 2016, eGit version 4.5.0, je ne vois pas «Écraser». Il semble maintenant être 'Replace With ...' 'HEAD revision'
Ed Randall

Réponses:

274

Cela peut être fait via le menu contextuel "Remplacer par / Fichier dans l'index Git" sur le fichier dans la vue package.

Sergii Rudchenko
la source
5
Que faire si le fichier n'existe pas dans l'espace de travail (encore / plus)?
zedoo le
@zedoo Si le fichier n'existe pas, ouvrez la vue "Git Staging", cliquez avec le bouton droit de la souris sur le fichier supprimé dans la liste "Unstaged Changes" et sélectionnez "Replace with HEAD Revision"
Vlasta Dolejs
42

Vous pouvez y parvenir en effectuant une réinitialisation (matérielle). Dans le menu contextuel du projet, sélectionnez Équipe> Réinitialiser à ..., choisissez "HEAD" et "Hard" comme type de réinitialisation.

Veuillez noter qu'en faisant cela, vous perdrez les modifications de TOUS les fichiers. Pour rétablir un seul fichier, voir cette réponse .

Simon
la source
Je viens de découvrir à la dure que commit fait également la même chose - commet TOUS les fichiers au lieu du seul fichier sélectionné.
Steve Kuo
Bon, mais au moins vous pouvez désélectionner des fichiers dans la boîte de dialogue de commit ... Btw: J'ai déposé un bogue pour la réinitialisation bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon
5
Le support de Git dans Eclipse est vraiment inférieur à CVS et SVN à cause de cela! La fonctionnalité "Remplacer par la dernière version de HEAD" de CVS est vraiment importante pour moi.
kosoant
@kosoant Eclipse peut également le faire avec Git. Voir cette réponse
Brad Cupit
3
Il demande explicitement de rétablir un fichier, pas tous.
Zofren du
18

dans la version Eclipse: 3.7.0

dans "Perspective de synchronisation d'équipe" -> clic droit sur le fichier / dossier dans la vue de synchronisation -> écraser

Ekeren
la source
c'était l'un des plus faciles à réaliser. Il fait une fenêtre contextuelle pour confirmer que vous souhaitez remplacer vos modifications locales.
Karidrgn
Cela a supprimé de nouveaux fichiers, des modifications non mises en scène, ce dont j'avais besoin.
Katu
12

Une autre possibilité consiste à utiliser la vue Git Staging :

  • Ouvrez la vue Git Staging en appuyant sur Ctrl + 3 ou Commande + 3 et en tapant
    staging
  • Si la vue n'affiche pas déjà votre référentiel, cliquez sur le projet ou le fichier
  • Vous devriez maintenant voir les fichiers que vous avez modifiés dans les changements non organisés section
  • Double-cliquez sur le fichier non organisé
  • Vous voyez maintenant une vue de comparaison avec votre version sur la gauche et la version avant les modifications sur la droite

Maintenant, pour annuler uniquement certaines des modifications dans le fichier, procédez comme suit:

  • Dans la vue de comparaison, sélectionnez l'une de vos lignes modifiées
  • Sélectionnez l' élément de barre d'outils Copier la modification actuelle de droite à gauche

Cela fera correspondre le côté gauche au côté droit pour ce changement. Enregistrez le fichier pour terminer l'annulation.

Pour annuler toutes vos modifications:

  • Dans la vue de mise en scène, cliquez avec le bouton droit sur le fichier non mis en scène
  • Sélectionnez Remplacer par un fichier dans l'index Git

Vous pouvez également sélectionner plusieurs fichiers non mis en scène, puis cliquer avec le bouton droit de la souris.

robinst
la source
Je me demande pourquoi cette réponse a obtenu moins de votes. Je préférerais marquer cela le mieux; je ne me serais jamais figuré. Merci @robinst
HarsH
11

Rétablissez un seul fichier en accédant à Fenêtre> Afficher la vue> Autre> Git Staging> Modifications non organisées

Sélectionnez le (s) fichier (s) que vous souhaitez restaurer. Cliquez avec le bouton droit et choisissez Remplacer par la révision HEAD

Notez que cette étape ne peut pas être annulée.

(J'utilise Eclipse Version: 3.7.2 Egit version 2.3.1.201302201838-r)

TA
la source
7

Pour revenir en arrière, vous pouvez cliquer avec le bouton droit sur le fichier / répertoire souhaité, puis sélectionner Remplacer par -> Version HEAD

utilisateur3812819
la source
Est-ce que cela s'applique à n'importe quel plugin Git dans Eclipse? Cela a bien fonctionné avec Egit.
johnnieb
MISE À JOUR: Dans Eclipse Mars et Luna SR2 (intégré à Git), cela fonctionnait comme ça.
Mag
4

Ouvrez Team Synchronizing. Trouvez le fichier et faites un clic droit -> Écraser.

METTRE À JOUR

Dans Eclipse Luna (4.4.2), ouvrez Team Synchronizing. Trouvez le fichier et faites un clic droit -> "Revert ..."

Geddon
la source
3

La fonctionnalité est en fait là-dedans, mais cela peut ne pas être évident:

  • Assurez-vous que quickdiff est activé avec une révision git et que la ligne de base de quickdiff est HEAD (c'est la valeur par défaut).
  • Ouvrez le fichier que vous souhaitez restaurer.
  • Tout sélectionner (Ctrl-A)
  • Cliquez avec le bouton droit dans la barre quickdiff
  • Sélectionnez "Rétablir la sélection"
  • sauver

btw, revenir dans le jargon git signifie créer un nouveau commit pour annuler un commit précédent.

robinr
la source
Pour travailler avec quickdiff, voici une introduction rapide: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin Despa
1

Pour restaurer l'intégralité de votre fichier aux données du référentiel:

Cliquez sur le dossier dans lequel vous souhaitez faire la révision puis allez dans GitStaging entrez la description de l'image ici

adhg
la source