Si j'ai modifié plusieurs lignes d'un fichier versionné, est-il possible d'annuler les modifications de ne ligne par ligne de commande?
Tout comme je le ferais pour un fichier entier avec:
git checkout /path/to/file.extension
mais faire quelque chose comme, disons
git checkout /path/to/file.extension --line 10
est-ce possible?
Vous pouvez utiliser git checkout -p
pour voir chaque morceau individuellement et décider de les retirer ou de les laisser tels quels (et cela prend également un argument de chemin facultatif si vous souhaitez le réduire davantage).
Pour développer la réponse de Matt, git checkout --patch -- <path argument>
démarre un mode interactif avec les options suivantes:
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
Les options y
n
s
et e
sont un bon point de départ.
Voir également:
--patch