首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于"git“,是否有一个-U<infinity>选项来显示整个文件?

对于"git“,是否有一个-U<infinity>选项来显示整个文件?
EN

Stack Overflow用户
提问于 2015-02-25 19:00:49
回答 2查看 3K关注 0票数 18

我需要通过编程方式为web ui生成一个完整的上下文git。

用于生成完整上下文差异的CLI包含了以下问题:

流行的答案是类似于git diff -U99999

使用高得离谱的阈值(例如999 999)的-U / --unified选项,执行git diff -U999999

  1. 让我怀疑可能会有一场表演热
  2. 更糟糕的是,如果我的文件大于1M行,这将是一个正确性问题

是否有显示整个文件的-U选项?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-04 04:15:54

如果您只在-U中使用一个大的数字,您可以选择大号作为应用程序无法处理显示如此大的文件(diff)的点。

如果我的文件大于1M行,这是一个正确性问题

为了解决这个问题,您可以检查多个@@ ... @@行的输出,以确定它是否完整--这样您就可以避免默默地给出错误的数字。

票数 9
EN

Stack Overflow用户

发布于 2015-02-27 23:14:23

坦率地说,最好的选择是使用git difftool而不是普通的git diff。若要查看您的git版本支持哪些工具,请输入

代码语言:javascript
复制
git difftool --tool-help

使用我的版本(2.3.0),它显示了以下内容

代码语言:javascript
复制
$ git difftool --tool-help
'git difftool --tool=<tool>' may be set to one of the following:
        araxis
        gvimdiff
        gvimdiff2
        gvimdiff3
        meld
        vimdiff
        vimdiff2
        vimdiff3

The following tools are valid, but not currently available:
        bc
        bc3
        codecompare
        deltawalker
        diffmerge
        diffuse
        ecmerge
        emerge
        kdiff3
        kompare
        opendiff
        p4merge
        tkdiff
        xxdiff

我通常使用meld,但这只是个人喜好。git difftool使用与git diff相同的参数加上一些参数来帮助处理这个过程(我发现-y在从一个文件转移到另一个文件时对防止提示很有用)。

要检查特定提交所引入的更改,例如,可以使用

代码语言:javascript
复制
git difftool -y -t meld 08f0f82^..08f0f82

显然用正确的SHA-1代替了08f0f82

我最大的抱怨是,它按顺序启动每个修改文件的工具(因此指定了-y选项)。

如果只想检查提交中特定文件的更改,只需将文件名添加到命令行即可。

代码语言:javascript
复制
git difftool -y -t meld 08f0f82^..08f0f82 myfile.c

显然,这是用于交互的,而不是脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28727424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档