我正在选择性地提交大文件的部分内容,并且希望能够看到每个 hunk 周围的更多上下文。这是否可能?
我能否为您提供其他帮助?我正在选择性地提交大文件的部分内容,并且希望能够看到每个 hunk 周围的更多上下文。这是否可能?
我能否为您提供其他帮助?简短回答:没有。
git diff
命令有 -U<n>
选项,可以让你自定义在改变周围显示的行数。例如,git diff -U5 ...
将显示 5 行上下文。据我所知,在交互模式中,没有类似的选项可供选择。
GIT_DIFF_OPTS=-u10 git add -p
将显示10行上下文。
详见https://git-scm.com/book/zh/v2/Git-内部原理-环境变量#%E6%AF%94%E8%BE%83%E5%92%8C%E5%90%88%E5%B9%B6。
git show
命令。 - Błażej Michalik确认一下,2019年仍然无法实现此功能。
像jjlee/git-meld-index
这样的外部工具可以帮忙:
git-meld-index
运行meld
或其他git差异工具(例如kdiff3
,diffuse
等),以允许您交互地将更改加入到git索引(也称为git暂存区)中。
这类似于git add -p
和git add --interactive
的功能。
在某些情况下,meld比
git add -p
或像git gui
这样的工具中的暂存功能更易于使用/更快捷。因为meld允许您,例如:
- 看到更多上下文,
- 查看行内差异
- 手动编辑并观察“实时”差异更新(每次键入后更新)
- 导航到更改而无需对要跳过的每个更改说“n”
我只想补充一点,您可以使用像https://dev59.com/SGYr5IYBdhLWcg3wfaWd#40683517这样的解决方案来获取完整上下文的差异,由Ezra提供。
git diff -U$(wc -l MYFILE)
gets you pretty close
git diff -U<n>
中的数字会用于每个更改行的两侧。因此,如果您有一行更改,git diff -U5
将向您显示 11 行(假设该行不在文件的开头或结尾)。 - ArtOfWarfaregit diff
而非git add --patch
或者git add --interactive
的。 - 0xcaff