有没有办法让git差异的输出格式像cvs样式差异?我发现git diffs的可读性较差.此外,出现的git差异more很烦人 - 我怎么能禁用它?
git diffdiff -u默认情况下使用"通用"格式. cvs diff使用较旧的标准差异格式(标记为删除的行<,添加标记的行>,每个差异周围没有上下文).
你可以使用git diff -c或者git diff -C5例如获得5行上下文而不是默认3 来获得"上下文差异" .
diff --normal(至少如果你使用的是GNU diffutils)会产生旧式的差异,但git diff似乎没有认识到这个--normal选项.
就个人而言,我发现上下文差异比旧式差异更具可读性,所以我从未发现需要使用旧式差异git diff.尝试git diff -c(以及haggai_e的建议来禁用寻呼机).
如果你真的想要旧式差异(<,>没有上下文),那么可能有办法做到这一点.
编辑:
如果git diff没有做你想要的,你可以提取文件修订版的副本,并使用你喜欢的任何差异工具.我自己的get-versions工具可以从git(或从RCS或CVS)中提取文件的多个版本.
这是另一个解决方案,虽然它有点复杂.举个例子,我为自己克隆了git repo git.如果我想比较顶级README文件的两个连续版本,我可以这样做:
$ diff --normal <(git show 779d7e93773a0dcf918dc77023511fdc68161bd8:README) \
<(git show 71ce415dc088f19a0b8d6c8567dfdd6d851842b2:README)
24,26c24,25
< compatible with the GPLv2).
< It was originally written by Linus Torvalds with help of a group of
< hackers around the net. It is currently maintained by Junio C Hamano.
---
> compatible with the GPLv2). It was originally written by Linus
> Torvalds with help of a group of hackers around the net.
$
Run Code Online (Sandbox Code Playgroud)
将它包装在一个小脚本中会很容易.
请注意,:(README在上面的示例中)后面的文件路径是相对于存储库的根目录,而不是当前目录.您可以在名称前面加上./make使其相对于当前目录.(后者可能不适用于某些旧版本的git.)
您可以通过设置core.pager为空字符串来禁用寻呼机:
git config --global core.pager ''
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |