Ist es möglich, eine einzelne Zeile anstelle der gesamten Datei auszuchecken?


85

Wenn ich mehrere Zeilen einer versionierten Datei geändert habe, ist es dann möglich, die Änderungen einer Zeile über die Befehlszeile rückgängig zu machen ?

Genau wie ich es für eine ganze Datei tun würde mit:

git checkout /path/to/file.extension

aber so etwas tun, sagen wir

git checkout /path/to/file.extension --line 10

Ist das möglich?

Antworten:


124

Sie können git checkout -pjedes Stück einzeln anzeigen und entscheiden, ob Sie es auschecken oder unverändert lassen möchten (und dies erfordert auch ein optionales Pfadargument, wenn Sie es weiter eingrenzen möchten).


Diese Methode liefert zu große Teile anstelle von Linien ... :(
Tastaturalpfa

45

git checkout --patch -- <path argument>Startet einen interaktiven Modus mit den folgenden Optionen, um auf Matts Antwort einzugehen:

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

Die y n sund eOptionen sind ein guter Anfang.

Siehe auch:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.