È possibile eseguire il git-checkout di una singola riga invece dell'intero file?


88

Se ho modificato più righe di un file con versione, è possibile annullare le modifiche di una riga dalla riga di comando?

Proprio come farei per un intero file con:

git checkout /path/to/file.extension

ma fare qualcosa come, diciamo

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

È possibile?

Risposte:


126

Puoi usare git checkout -pper vedere ogni pezzo individualmente e decidere se controllarli o lasciarli così com'è (e questo richiede anche un argomento di percorso opzionale se desideri restringerlo ulteriormente).


Questo metodo fornisce parti troppo grandi, invece di linee ... :(
betontalpfa

47

Per approfondire la risposta di Matt, git checkout --patch -- <path argument>avvia una modalità interattiva con le seguenti opzioni:

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

Le opzioni y n se esono un buon punto di partenza.

Guarda anche:

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.