42 votes

Comment puis-je ignorer les modifications de fichier de la fenêtre de statut fugitif?

Lorsque dans la fenêtre d'état du plugin fugitive, accédée en utilisant :Gstatus, il est possible de différencier les changements pour un fichier en utilisant D et de basculer les fichiers pour commit en utilisant -.

Y a-t-il un raccourci similaire pour abandonner les changements, par abandon je veux dire l'équivalent de git checkout -- nomdufichier ?

Mise à jour :

J'ai trouvé une demande de fonctionnalité sur la page github de fugitive Problème n°97 : Raccourci pour vérifier/supprimer des fichiers

D'après cela, la méthode préférée est d'utiliser :Gread :w

Mise à jour 2 :

Depuis juin 2014, il est possible d'utiliser U comme indiqué par Anson ci-dessous.

Mise à jour 3 : Depuis le 3 janv. 2019, la combinaison de touches est mappée sur X

39voto

Anson Points 506

En date de 2019 :

Cette fonctionnalité est associée à X. Voici ce que :h fugitive-staging-maps en dit :

X                       Annuler le changement sous le curseur. Cela utilise
                        `checkout` ou `clean` en interne. Une commande est
                        affichée pour montrer comment annuler le changement. Consultez
                        `:messages` pour le voir à nouveau. Vous pouvez utiliser ceci
                        pendant un conflit de fusion pour annuler les changements de "notre" côté (--theirs)
                        dans la section "Non stagiaire" ou annuler les changements de "leur" côté
                        (--ours) dans la section "Stagiaire".

Pour un contexte historique :

Cette fonctionnalité a été ajoutée en juin 2014 et était par défaut associée à U.

Demande de fonctionnalité et discussion :
https://github.com/tpope/vim-fugitive/issues/97

Commit :
https://github.com/tpope/vim-fugitive/commit/061a81f247538aeb61e165e1551355f289d52f63

21voto

Chris Johnsen Points 36743

Vous pouvez utiliser la commande fugitive’s Gread pour remplacer le contenu d'un tampon avec diverses versions alternatives du fichier du tampon (c'est-à-dire que cela doit être fait à partir d'un tampon de fichier, pas du tampon :Gstatus).

  • :Gread (sans argument) utilisera la version du fichier de l'index†.
  • :Gread - utilisera la version du fichier du commit HEAD.

Consultez la documentation à l’adresse :help fugitive-revision pour obtenir la liste des autres spécifications de révision que fugitive prend en charge (les deux ci-dessus sont probablement les plus utiles à court terme).

Le flux de travail :Gread se déroule comme suit:

  1. :Gread
  2. fugitive efface le tampon actuel et lit le contenu de l'index
  3. Résultat: Le tampon a maintenant le même contenu que l'index. Le fichier de l'arborescence de travail n'est pas modifié.
  4. Vous pouvez ensuite utiliser :w pour enregistrer le fichier dans l'arborescence de travail (ou utiliser :Gread|w si vous savez que vous voulez l'enregistrer immédiatement).

Le flux de travail :Git checkout -- % se déroule comme suit:

  1. :Git checkout -- %
  2. Git copie la version du fichier dans l'index vers le fichier dans l'arborescence de travail.
  3. Vim détecte que le fichier a été modifié en dehors de l'éditeur et vous invite à l'ignorer ou à le recharger.
  4. Vous dites à Vim de recharger le fichier.
  5. Résultat: À la fois le fichier de l'arborescence de travail et le tampon ont maintenant le contenu de l'index.

Résumé: :Gread évite le message «le fichier a changé depuis le début de l'édition» et vous permet de décider quand vous souhaitez modifier le fichier dans l'arborescence de travail.


† Lorsque le tampon représente un stade d'index du fichier au lieu du fichier de l'arborescence de travail, :Gread lit à partir du contenu du fichier tel qu'il existe sur le disque dans l'arborescence de travail au lieu du stade 0 de l'index.

1voto

Christophe Herreman Points 11844

Mapping pour gstatus pour revenir au fichier:

au FileType gitcommit nmap  U :Git checkout --

0voto

Craig McQueen Points 13194

Eh bien, avez-vous essayé :help fugitif ?

Apparemment non, il n'y a pas de raccourci pour cette fonctionnalité Git.

0voto

Valer Points 101

Bien que cela n'ait rien à voir avec vim, je voulais vous dire que je le fais parfois :

$ git status
...
#
#   modified:   .rvmrc
#   modified:   app/views/admin/base/index.html.erb
#   modified:   config/routes.rb
#
...

$ # copiez les fichiers que je veux réinitialiser dans la souris, et collez-les dans la commande suivante

$ cat | xargs git checkout
app/views/admin/base/index.html.erb
config/routes.rb
^D

finir le travail rapidement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X