3346 votes

Commettre qu’une partie d’un fichier dans Git

Lorsque j’ai apporter des modifications à un fichier dans Git, comment peux engager seulement quelques-uns des changements ?

Par exemple, comment pourrais je m’engage seulement 15 lignes de 30 lignes modifiées dans un fichier ?

4549voto

cloudhead Points 10279

Vous pouvez le faire git add -p filename.x, et il va vous demander ce que vous voulez mettre en scène. Vous pouvez alors:

  • hit s de diviser tout changement dans les petits mecs. Cela ne fonctionne que si il y a au moins un inchangée ligne dans le "milieu" du morceau, qui est l'endroit où le beau gosse sera divisé
  • ensuite, cliquez sur:
    • y de mettre en scène ce morceau, ou
    • n à pas étape de ce morceau, ou
    • e pour modifier manuellement le beau gosse (utile lorsque git ne peut pas diviser automatiquement)
  • et d pour sortir ou aller au fichier suivant.
  • Utilisez ? pour obtenir la liste complète des options disponibles.

Si le fichier n'est pas dans le référentiel encore, faire en premier git add -N filename.x. Ensuite, vous pouvez aller sur avec git add -p filename.x.

278voto

Jakub Narębski Points 87537

Vous pouvez utiliser git add --interactive ou git add -p <, puis file (pas >); voir le mode Interactif dans git-ajouter des pages de manuel, ou tout simplement suivre les instructions.

Si vous préférez le faire partir de l'interface graphique, vous pouvez utiliser git-gui. Vous pouvez simplement marquer des morceaux qui vous voulez avoir inclus dans le commettre. Personnellement, je trouve cela plus facile que d'utiliser git commit. D'autres git Gui, comme QGit ou GitX, pourrait aussi avoir cette fonctionnalité.

176voto

Ionuț G. Stan Points 62482

git gui fournit cette fonctionnalité sous la vue de diff. Juste un clic droit l’ou les lignes que vous intéresse et vous devriez voir un élément de menu « étape cette ligne de commettre ».

48voto

François Points 2445

Si vous utilisez vim, vous pouvez essayer l'excellent plugin appelé fugitif.

Vous pouvez voir la diff sur un fichier de la copie de travail et un index avec des :Gdiff, puis ajouter des lignes ou des mecs à l'index à l'aide classique vim diff des commandes comme dp. Enregistrer les modifications dans l'index et de s'engager avec :Gcommit, et vous avez terminé.

Très bonne introduction aux screencasts ici (cf. esp. la partie 2).

23voto

jdsumsion Points 1446

Quand j’ai beaucoup de changements et finira par créer quelques validations des changements, alors je veux sauver mon point de départ temporairement avant d’organiser les choses.

Comme ça :

Réponse de Whymarrh est ce que je fais habituellement, sauf que parfois il y a beaucoup de changements, et je peux dire je pourrais faites une erreur en mise en scène de choses, et je veux un État sollicité que je peux retomber pour un second passage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X