Bra*_*don 4 git powershell logging
我正在通过PowerShell运行一些git命令,但我在捕获输出时遇到问题.
在我尝试使用之前,我所研究的许多方法都未能捕获任何输出Out-File.不幸的是,尽管这对我来说有多好,但我发现git push命令出了问题,导致我无法捕获输出...
我的代码如下:
git add . | Out-File $logFilePath -Append
git status . | Out-File $logFilePath -Append
git commit -m "Some Relevant update message" | Out-File $logFilePath -Append
git push origin $branchname | Out-File $logFilePath -Append
Run Code Online (Sandbox Code Playgroud)
当我查看日志文件时,它会显示除了输出之外的所有内容git push.因此,在对此进行故障排除时,我| Out-File从行中删除了,并注意到即使输出窗口也没有显示输出git push.只有当我完全删除Out-File所有git命令时,我才能使输出再次按预期显示.不幸的是,这让我回到原点.
有谁知道如何使用PowerShell最好地捕获git命令的输出,或者可以指出我做错了什么?
正如我解释这里,或这里,Git的命令输出的stderr上,没有标准输出来完成.
所以在你的情况下,你需要管道stderr.
例如,请参阅" 重定向附加到同一日志文件的标准和错误输出 ".
注意:使用Git 2.16(尚未发布),您可以先尝试设置
set GIT_REDIRECT_STDERR=2>&1
Run Code Online (Sandbox Code Playgroud)
然后应该将stderr重定向到stdout.
在" PowerShell - 为Git命令捕获STDERR输出 "中,OP Brandon指出了--porcelain(例如)git push的选项:
& git status --porcelain >> $logFilePath
& git push --porcelain >> $logFilePath
Run Code Online (Sandbox Code Playgroud)
它允许将输出转换为机器可读格式并将它们输出到输出.
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |