git 为什么PowerShell.Invoke在错误流中包含常规消息

ubby3x7f  于 2023-03-21  发布在  Git
关注(0)|答案(1)|浏览(96)

我使用Microsoft.PowerShell.SDK(Version 7.3.3)从C#克隆一个git仓库,如下所示:
(Note:我知道有libgit 2sharp,但它并不支持我的所有用例)。

using (var ps = PowerShell.Create())
    {
        ps.AddScript($"git clone {url} {localPath}");
        ps.Invoke();
        if (ps.HadErrors)
        {
            Console.WriteLine("Errors occurred: ");
            foreach (var error in ps.Streams.Error)
            {
                Console.WriteLine(error.ToString());
            }
        }
    }

当 * 成功地 * 拉取一个仓库时,我在控制台上得到以下输出:
发生错误:
正在克隆到“<本地路径>”...
为什么信息输出会出现在错误流中?

bnl4lu3b

bnl4lu3b1#

感谢@madreflection的评论,我发现这是git的一个专长
添加--quiet标志将导致git只向错误流报告实际错误,而在任何“好”的情况下都保持沉默(比较文档here):

ps.AddScript($"git clone {url} {localPath} --quiet");

相关问题