Comment puis-je différencier un seul fichier avec magit?

Disons que j’ai apporté un certain nombre de modifications sans rapport aux fichiers non couplés dans mon repo git. Je souhaite examiner et valider chacun des fichiers séparément.

Je lance magit-status et récupère une liste de fichiers modifiés. Mais les seules commandes magit diff que je peux trouver ( d et D ) diff ent des révisions entières, pas des fichiers individuels.

Je veux la sortie de git diff , mais dans le tampon de diff magit. Comment puis-je faire en sorte que magit ne diffuse qu’un seul fichier?

    Magit vous permet de “réviser et de valider chacun des fichiers séparément” directement à partir du tampon magit-status , sans avoir recours à des tampons diff distincts.

    Vous développez simplement le ou les fichiers qui vous intéressent (avec TAB , qui vous montre le diff pour le fichier au point); Vous pouvez ensuite mettre en scène les bits que vous souhaitez valider (soit le fichier entier, soit des morceaux individuels, voire une région marquée) avec s à mettre en scène (ou u à désinstaller). Répétez l’opération pour toutes les modifications impliquées dans cette validation et, une fois que tout le nécessaire a été mis en scène, appuyez sur c pour lancer la validation.

    nb Si vous voulez vraiment afficher le diff pour un fichier dans un tampon séparé, vous pouvez utiliser vc-diff lié à Cx v = dans le tampon de ce fichier. (c’est la fonctionnalité par défaut dans Emacs, pas dans Magit).

    (edit: réponse réécrite à cause du commentaire de aap, qui semble maintenant dire le contraire de ce que cela signifiait à l’époque.)

    Je recommande de regarder la vidéo par le créateur de Magit. Il est 20 min et il vous montre le déroulement du travail tel que prévu.

    En outre, une petite astuce: vous pouvez utiliser 1 2 3 pour modifier le détail des différences du titre actuel.

    Autre petite astuce: si vous n’êtes pas satisfait de la taille des mecs, vous pouvez placer des régions arbitraires en marquant une région et en appuyant sur s . C’est magique. Je ne connaissais pas cette option depuis un moment, j’étais en train de revenir en console et de faire git add -p l’ancienne.

    Il y a certainement des avantages à ne pas aller à contre-courant en utilisant des outils, comme le montrent les autres réponses.

    D’un autre côté, il suffit parfois de dire à votre éditeur quoi faire et de laisser des internautes répondre à vos questions au lieu de vous dire que vous voulez faire autre chose.

    magit fournit une interface de menu pour faire des choses dans le fichier actuel via Mx magit-file-popup . Les touches sur lesquelles vous devez appuyer sont “du”. Cela pourrait bien être trop de touches pour vous, si tel est le cas, vous pouvez appeler directement magit-diff comme ceci:

    (magit-diff "master" nil (list buffer-file-name))

    Vous voudrez peut-être définir votre propre fonction et votre propre raccourci clavier pour cela.

    magit-diff a des avantages par rapport à vc-diff car si vous permet de sauter à l’emplacement du diff.