Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux git diff——用字符串而不是文件路径表示numstat_Linux_Bash_Git_Diff_Git Diff - Fatal编程技术网

Linux git diff——用字符串而不是文件路径表示numstat

Linux git diff——用字符串而不是文件路径表示numstat,linux,bash,git,diff,git-diff,Linux,Bash,Git,Diff,Git Diff,我试图在Linux(Debian Docker容器)上运行git diff--no index--numstat,但我没有找到实现这一点的方法。本质上,我希望以字符串形式传递文件的内容,而不是它们的文件路径。目标是从--numstat标志中检索统计数据 此命令应在git存储库/目录之外的Linux上可执行。到目前为止,我发现了两种解决方案缺少前面的要求: git diff--no index--numstat/dev/fd/3/dev/fd/4 3解决方案1的原因。不起作用的原因是/dev/fd

我试图在Linux(Debian Docker容器)上运行
git diff--no index--numstat
,但我没有找到实现这一点的方法。本质上,我希望以字符串形式传递文件的内容,而不是它们的文件路径。目标是从
--numstat
标志中检索统计数据

此命令应在
git
存储库/目录之外的Linux上可执行。到目前为止,我发现了两种解决方案缺少前面的要求:


  • git diff--no index--numstat/dev/fd/3/dev/fd/4 3解决方案1的原因。不起作用的原因是
    /dev/fd/3
    /dev/fd/4
    是符号链接,
    git diff
    不跟随符号链接,而是使用链接目标字符串作为“内容”

    将字符串直接传递给
    git diff
    而不是文件的唯一方法是作为stdin,它显然只适用于其中一个文件。因此,我认为只有两种可能的解决方案可以解决您的问题:

  • 首先将字符串写入(临时)文件,然后将其传递到git diff
  • 按照评论中的建议,使用另一种工具

  • 1的另一个较短版本。使用将是:


    git-diff--no-index--numstat我是否正确理解您想将
    git
    用作diff工具?如果是这样,您可以在Linux下使用
    diff
    diffstat
    ,请参见例如。