提交文件的特定行到git

365

1
SourceTree 使得操作变得更加简单,减少了困惑。 - WarFox
SourceTree不允许我仅选择行,而是整个代码块。经常我无法将一个代码块拆分为我想要的行。 - gman
1
这个问题要求特定的代码行,我想提供它们的行号。链接的问题与此不同。 - jangorecki
2个回答

633
尝试使用git add -p命令,它能够交互式地让你添加、跳过或拆分差异块。

51
当我这样做时,Git会选择哪些更改被视为一块。例如,我在一个文件中的三个位置进行了更改,但它只给我两个选项作为提交:一个包含前两个更改的块,另一个包含第三个更改的块。是否有一种方法可以指定实际的行号,就像原始问题(OP)所问的那样? - Nathan Long
23
git add -p 命令可以将一个变更区块(hunk)分割成更小的变更区块(hunk)。请参考选项中的 'a'。如果 'a' 选项不起作用,那么也许 'e' 选项会有帮助。请参阅 http://www.kernel.org/pub/software/scm/git/docs/git-add.html 中的“交互模式”部分。 - ThomasW
46
@ThomasW - 我想你的意思是“s”而不是“a”。 - asgeo1
13
是的,@asgeo1,你说得对,我想表达的是's'。 - ThomasW
57
为了澄清上述内容,一旦显示一个“hunk”,如果按下“s”键,它将被分成更小的“hunk”。 - Brian Fegter
显示剩余9条评论

38
使用git add -i将行添加到暂存区,然后像平常一样提交,或者使用git-cola直到熟悉命令行为止。

文件中的暂存行


7
或者使用 git gui,就像这个答案中提到的那样。 - Gabriel Devillers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接