2013-01-04 1 views
1

Avant de mettre en scène les fichiers, j'aime effectuer un git diff pour vérifier que tout va bien. Pendant que je parcours verticalement un diff, je note mentalement chaque fichier qui est "OK" pour la mise en scène. Si c'est un différé particulièrement long, je trouve qu'il est difficile de garder une trace de ceux qui ont été OK, donc j'ai tendance à quitter le différentiel à intervalles et à mettre en scène ce que je peux. Cela devient un peu fastidieux.Pouvez-vous mettre en scène un fichier (ou au moins, une section d'un fichier) PENDANT un diff git?

Y a-t-il un moyen d'améliorer ce flux de travail? Évidemment, on ne devrait pas laisser leur diff grandir en premier lieu, mais parfois les choses ne fonctionnent pas comme ça (par exemple changer la signature de la méthode pour une méthode qui est appelée à travers de nombreux fichiers).

Par exemple, est-il possible de tout organiser depuis le "sommet" de la "session" actuellement active git diff jusqu'au point actuel dans le diff où vous vous trouvez? De cette façon, je pourrais continuer à faire de la mise en scène sans quitter le diff et perdre mon train de pensée.

Répondre

2

Essayez à la place d'utiliser git add -p. Il vous montrera chacun des diffks et vous demandera si vous voulez les ajouter.

+0

juste me battre! :) –

+0

Se produit parfois avec certaines des questions qui ont tendance à recevoir des réponses courtes :) –

2

Vous pouvez le faire avec un complément partiel:

git add -p 

Il vous mènera à travers différentes Hunks du fichier, vous laisser la scène ou ignores comme bon vous semble pour chacun.

0

Utilisation:

git add --interactive 

J'ai fait un alias pour dans ~/.bashrc:

alias gi='git add --interactive' 

savoir comment nous git add -i à son plein potentiel. Cela fait maintenant partie de mon flux de travail quotidien et c'est l'une des choses que j'aime le plus sur git! :)

Les autres réponses se cachent les autres fonctionnalités intéressantes de git add -i:

-p, --patch 
     Interactively choose hunks of patch between the index and the work tree 
     and add them to the index. This gives the user a chance to review the 
     difference before adding modified contents to the index. 

     This effectively runs add --interactive, 
     but bypasses the initial command menu 
     and directly jumps to the patch subcommand. 
     See “Interactive mode” for details. 
Questions connexes