Czy można wyewidencjonować pojedynczą linię zamiast całego pliku?


86

Jeśli zmodyfikowałem kilka wierszy wersjonowanego pliku, czy można cofnąć zmiany w wierszu za pomocą wiersza poleceń?

Tak jak zrobiłbym to dla całego pliku z:

git checkout /path/to/file.extension

ale robiąc coś takiego, powiedzmy

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

czy to możliwe?

Odpowiedzi:


124

Możesz użyć, git checkout -paby zobaczyć każdy fragment indywidualnie i zdecydować, czy chcesz je sprawdzić, czy pozostawić tak, jak jest (i to również wymaga opcjonalnego argumentu ścieżki, jeśli chcesz go bardziej zawęzić).


Ta metoda daje zbyt duże części, zamiast linii ... :(
betontalpfa

46

Aby rozwinąć odpowiedź Matta, git checkout --patch -- <path argument>uruchom tryb interaktywny z następującymi opcjami:

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

y n sI eopcje są dobre miejsce, aby rozpocząć.

Zobacz też:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.