J'utilise Eclipse Indigo SR2 avec le plugin EGit (intégré) v.1.3.0.201202151440-r et je n'ai pas trouvé de moyen de revoir facilement toutes mes modifications avant de faire un commit.
J'ai utilisé Eclipse avec SVN pendant des années, et c'était toujours très facile à faire. Je fais généralement un clic droit sur mon projet, sélectionnez Team->Synchronize
, double-cliquez sur le premier fichier modifié (dans la perspective Team Sync), puis appuyez sur Ctrl-. à plusieurs reprises pour revoir toutes les modifications dans un fichier, puis passer au fichier suivant, alors que j'écrivais un résumé de mes modifications pour le message de validation.
Mais bien sûr, git est très différent de Subversion, et donc mon flux de travail doit changer. Avec EGit, "Team Sync" ne semble être utile que pour examiner les modifications entre mes fichiers locaux et le référentiel distant (c'est-à-dire avant un push vers la télécommande). J'ai besoin d'un moyen de revoir les modifications depuis mon dernier commit dans mon local repository. En général, je ne me soucie même pas de (re) revoir les modifications avant un Push to remote (et si je le faisais, je préférerais un simple équivalent de git log
pour voir ce que je suis sur le point de pousser).
Si je clique avec le bouton droit sur mon projet et sélectionne Team->Commit
, On me présente une fenêtre qui fait presque tout ce que je dois faire (sélectionner les fichiers à mettre en scène, valider, écrire un message de validation, modifier une validation précédente, etc.). Ce que pas me permet de faire est de revoir rapidement et facilement toutes mes modifications dans un éditeur de comparaison. Je ne peux pas croire que cette capacité n'existe pas! Il semble que je doive double-cliquer sur chaque fichier individuel, revoir les modifications, fermer l'éditeur de comparaison et double-cliquer sur le fichier suivant. C'est ridicule!
TL/DR - Je recherche un équivalent GUI simple (dans Eclipse) pour faire ce que je peux facilement faire depuis la ligne de commande en utilisant git vimdiff
(où vimdiff est un alias git qui utilise vimdiff comme "difftool" pour parcourir tous les fichiers modifiés) suivi de git commit
(avec peut-être un git add
ou deux entre les deux).
Si personne n'a de bonne solution, je suis curieux de savoir comment les autres gèrent leur workflow de validation avec EGit. Je m'entends bien en commettant depuis la ligne de commande (pas qu'Eclipse en soit content) mais je n'arrive pas à croire qu'EGit soit aussi presque inutile qu'il me semble. Peut-être que mon google-fu n'est pas aussi solide qu'il l'était autrefois?
Connaissez-vous la vue "Git Staging"? Il garde une trace de tous les fichiers qui ont été modifiés et vous pouvez consulter les changements à tout moment. (Cela peut être un peu mieux que d'utiliser la boîte de dialogue de validation)
Une alternative consiste à valider toutes les modifications sans les réviser, puis à utiliser la vue historique pour comparer deux validations (sélectionnez simplement le dernier plus grand nombre de validations, cliquez avec le bouton droit et sélectionnez 'Comparer les unes aux autres'). De cette façon, vous n'avez pas à continuer de double-cliquer sur des fichiers individuels. Si vous devez changer quelque chose, vous pouvez toujours "modifier" le dernier commit. (J'ai l'habitude de suivre cette approche)
Dit ici que vous pouvez voir les différences entre l'arbre de travail et toute référence donnée. Vous devriez peut-être essayer la dernière version (Juno) d'Eclipse/EGit et voir si elle s'est améliorée?
Mise à jour: J'ai essayé cela dans le dernier Eclipse, et pour autant que je puisse voir, cela fonctionne bien. Voici comment:
Au moment d'écrire ces lignes, Eclipse Juno 4.2 est la version que vous devriez choisir. Sur la page de téléchargement, vous pouvez choisir entre plusieurs packages selon vos besoins. 'Eclipse IDE for Java Developers' est fourni avec EGit, mais vous pouvez également installer EGit dans n'importe quelle distribution à l'aide d'Eclipse Marketplace (dans le menu Aide) .
Cliquez avec le bouton droit sur le projet -> Équipe -> Partager le projet .. -> Git
Maintenant, procédez comme suit:
refs/remotes/Origin/master
Maintenant, modifiez certains fichiers et regardez-les apparaître dans la vue de synchronisation. Double-cliquez sur les fichiers modifiés pour voir le diff (comme dans la capture d'écran ci-dessous).
J'écris ceci à partir d'Eclipse Oxygen, mais cela devrait également s'appliquer à d'autres versions.