124 votes

Comment déstocker de manière interactive un hunk particulier dans git ?

Dans git, si j'ai deux hunks du même fichier mis en scène dans mon index, comment puis-je déstager l'un d'entre eux de manière interactive ?

Existe-t-il une alternative au déstockage de l'ensemble du fichier, puis au re-stockage des parties que je souhaite conserver, ou à l'annulation manuelle des modifications de la copie de travail, puis à l'ajout interactif de ces modifications annulées ?

171voto

Aasmund Eldhuset Points 17036

Essayez git reset --patch filename cela devrait faire l'inverse de git add --patch selon le documentation . La forme courte -p fonctionne également pour les deux commandes.

0 votes

Je ne pense pas que ma version l'ait (c'est la 1.6.3.3), mais cela semble être la bonne réponse.

2 votes

Dans ce cas (et en supposant que vous ne pouvez pas effectuer de mise à niveau pour une raison quelconque), je vous suggère d'utiliser la fonction git stash save --keep-index pour enregistrer et réinitialiser les modifications de votre copie de travail actuelle. Vous pouvez alors réinitialiser votre fichier et annuler les modifications que vous ne voulez pas. Si vous copiez d'abord le fichier dans un emplacement temporaire, vous pouvez utiliser la commande diff pour enregistrer les modifications que vous annulez. Ensuite, vous pouvez ajouter le fichier à nouveau (pas besoin d'un ajout interactif puisque vous avez mis de côté les autres modifications qui ne vous intéressaient pas). Utilisez git stash pop pour récupérer les anciennes modifications, et diff pour appliquer les changements que vous avez annulés. C'est assez lourd... :-(

0 votes

The short form -p also works for both commands. .. Vous voulez dire git reset -p filename ?

4voto

wisbucky Points 829

git gui a une interface graphique décente pour mettre en scène ou déstager interactivement des groupes ou des lignes. Il existe des clients GUI plus beaux/meilleurs, mais git gui est léger, intégré et multiplateforme (lin, win, mac).

https://git-scm.com/docs/git-gui

Il suffit de faire un clic droit sur un morceau pour le mettre en scène ou le démonter. Pour les lignes, mettez d'abord les lignes en surbrillance, puis faites un clic droit.

-1voto

John Douthat Points 28189

GitX a une belle interface utilisateur pour déstocker des morceaux d'un fichier : enter image description here

Le client officiel n'a pas été maintenu depuis un certain temps, mais un fork sur GitHub avec plus de fonctionnalités est populaire dans certains milieux. ( article de blog à ce sujet )

1 votes

Pour les utilisateurs de Windows, Extensions Git a une interface utilisateur tout aussi agréable.

4 votes

De même que le système intégré de git gui sauf que je ne suis pas sûr que j'utiliserais le mot "gentil" ;)

1 votes

SourceTree (Windows + Mac) dispose également d'une interface utilisateur agréable pour cela.

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