是否可以git-checkout一行而不是整个文件?


86

如果修改了版本文件的几行,是否可以通过命令行撤消对一行的更改?

就像我会用以下方法处理整个文件一样:

git checkout /path/to/file.extension

但是做类似的事情

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

这可能吗?

Answers:


124

您可以用来git checkout -p单独查看每个大块,并决定是将其检出还是保留原样(如果您想进一步缩小范围,也可以使用可选的path参数)。


该方法提供的零件太大,而不是线条... :(
betontalpfa

46

要详细说明Matt的答案,请git checkout --patch -- <path argument>使用以下选项启动交互模式:

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 se选项是一个良好的开端。

也可以看看:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.