Git:在使用git add -i或git add -e时如何显示更多上下文?

132

我正在选择性地提交大文件的部分内容,并且希望能够看到每个 hunk 周围的更多上下文。这是否可能?

我能否为您提供其他帮助?
4个回答

180

简短回答:没有。

git diff 命令有 -U<n> 选项,可以让你自定义在改变周围显示的行数。例如,git diff -U5 ... 将显示 5 行上下文。据我所知,在交互模式中,没有类似的选项可供选择。


7
有没有一个“-U<infinity>”选项可以显示整个文件?(或者说一个大数字足够吗?) - titaniumdecoy
2
我想提一下,在 git diff -U<n> 中的数字会用于每个更改行的两侧。因此,如果您有一行更改,git diff -U5 将向您显示 11 行(假设该行不在文件的开头或结尾)。 - ArtOfWarfare
6
这是针对 git diff 而非 git add --patch 或者 git add --interactive 的。 - 0xcaff
1
@titaniumdecoy,我已经将其作为一个单独的问题发布在https://dev59.com/Sl4b5IYBdhLWcg3wvkA-。 - Aleksandr Levchuk
3
还没有解决方案吗? - Vitaly Zdanevich

10

1
请注意,这也适用于 git show 命令。 - Błażej Michalik

4

确认一下,2019年仍然无法实现此功能。

jjlee/git-meld-index这样的外部工具可以帮忙:

git-meld-index运行meld或其他git差异工具(例如kdiff3diffuse等),以允许您交互地将更改加入到git索引(也称为git暂存区)中。

这类似于git add -pgit add --interactive的功能。

在某些情况下,meld比git add -p或像git gui这样的工具中的暂存功能更易于使用/更快捷。因为meld允许您,例如:

  • 看到更多上下文,
  • 查看行内差异
  • 手动编辑并观察“实时”差异更新(每次键入后更新)
  • 导航到更改而无需对要跳过的每个更改说“n”

1

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