【问题标题】:Git fatal: ambiguous argument '|': unknown revision or path not in the working treeGit 致命:不明确的参数“|”:未知修订版或路径不在工作树中
【发布时间】:2020-05-28 21:22:28
【问题描述】:

当我打开 git bash 并执行以下命令时,我没有问题!

  git log --no-renames --after=’2020-01-01’ --diff-filter=D --summary | grep 'delete mode' > log.txt

但是当我尝试执行此操作时:

GitTasks.Git(@"log --no-renames --after=’2020-01-01’ --diff-filter=D --summary | grep 'delete mode' > files.20.exclude", @"D:\folder\myproject");

我得到了这些错误:

fatal: ambiguous argument '|': unknown revision or path not in the working tree.

fatal: ambiguous argument '>': unknown revision or path not in the working tree.

我必须做什么才能得到相同的结果?

【问题讨论】:

  • “管道”| 和后面的所有内容都不是任何 git 命令的一部分,因此将其交给 GitTasks.Git 是没有意义的。
  • 管道 (|) 和重定向 (>) 是 shell (Bash) 的功能。它解析命令行,识别要运行的命令,然后运行 ​​git 及其参数列表(git 和 | 之间的所有内容),使用一个参数 (delete mode) 运行 grep,连接输出流git 到grep (|) 的输入流和grep 到文件log.txt (>) 的输出流。当您使用 GitTasks.Git 时,不涉及 shell。字符串被解析为片段(由空格分隔),所有片段都作为参数提供给 Git。没有外壳可以实现上述魔法。

标签: git nuke-build


【解决方案1】:

我遇到了问题,我正在执行期望与 git 一起工作的 bash 命令,就像 @axiac 评论的那样!

为了解决我的问题,我将日志写入了一个没有 | grep 'delete mode' 和 > log.txt 并删除了我不想要的所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 2012-08-29
    • 2023-03-25
    • 2016-09-15
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多