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

时间:2011-08-05 22:09:25

标签: git git-checkout

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

就像我对整个文件所做的那样:

git checkout /path/to/file.extension

但做的事情,比如说

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

这可能吗?

2 个答案:

答案 0 :(得分:107)

您可以使用git checkout -p单独查看每个块,并决定是将它们检出或保留原样(如果您想进一步缩小范围,也可以选择路径参数)。

答案 1 :(得分:38)

要详细说明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选项是一个很好的起点。

另见: