web-dev-qa-db-fra.com

Git Diff - Comment revenir en arrière sur les lignes ou les morceaux sélectionnés

Dans Git GUI, je peux sélectionner des parties d'un diff et mettre en scène uniquement ces lignes ou ces morceaux. Comment ferais-je le contraire, comme dans l'annulation de lignes modifiées dans un fichier. Habituellement, ce sont des modifications d’espace blanc accidentelles. Je veux simplement revenir en arrière, tout en organisant/validant d’autres parties du même fichier.

29
Kenoyer130

Pour Git Gui: Cliquez d’abord sur Rescan pour rechercher le fichier modifié. Ensuite, cliquez sur l'icône située à gauche du nom du fichier pour mettre en place toutes les modifications pour la validation. Ensuite, faites un clic droit sur la ligne de débogage et choisissez Unstage Line From Commit.

Les informations ci-dessus de: http://nathanj.github.com/gitguide/tour.html

3
Anil

Placez les pièces de votre choix avec git add -p, puis supprimez (git checkout -- filename) les modifications non mises en scène.

Mise à jour pour Git 1.6.5+

Dans la version 1.6.5, Git a appris à passer à la caisse avec un drapeau -p/--patch. Vous pouvez supprimer des morceaux en une étape avec git checkout -p -- filename.

De les docs :

Sélectionnez de manière interactive des morceaux dans la différence entre <tree-ish> (ou l'index, si non spécifié) et l'arbre de travail. Les morceaux choisis sont ensuite appliqués en sens inverse à l’arbre de travail (et si un <tree-ish> a été spécifié, l’index).

Cela signifie que vous pouvez utiliser git checkout -p pour ignorer les modifications de votre arborescence de travail actuelle.

53
ellotheth

À Git Gui, 

  1. Organisez l'intégralité du fichier contenant les modifications non souhaitées.
  2. Décompressez les lignes/morceaux que vous voulez annuler
  3. Sélectionnez le fichier dans Modifications non mises en scène volet et Valider-> Annuler les modifications pour annuler toutes les modifications (non mises en scène) de ce fichier.

Source: http://git.661346.n2.nabble.com/Revert-hunk-td4991128.html

11
Leif Gruenwoldt

J'utilise git stash -p à cette fin. Cela a pour effet secondaire de créer une réserve avec les modifications qui ont été supprimées de l’arborescence de travail, ce qui est parfois utile pour les restaurer rapidement.

0
Matt Zimmerman