Powershell 中的 Git pull 以及如何获取命令的输出

Powershell 中的 Git pull 以及如何获取命令的输出

我对使用 PowerShell 进行自动化还很陌生。我想通过 ssh 进入一台机器,并在其中运行 git pull。当我手动通过 powershell 执行此操作时,此方法有效,但当我通过代码自动执行此操作时则无效。我拥有的是:

$Password = "mypsw"
$User = "myusername"
$ComputerName = "computername"

$secpasswd = ConvertTo-SecureString $Password -AsPlainText -Force
$Credentials = New-Object System.Management.Automation.PSCredential($User, $secpasswd)

$SessionID = New-SSHSession -ComputerName $ComputerName -Credential $Credentials 

#$result = Invoke-SSHCommand -Index $sessionid.sessionid -Command "ls"
$result.Output # this one works as expected, returns the list of folders and files
$result = Invoke-SSHCommand -Index $sessionid.sessionid -Command "git pull"
$result.Output # this doesn't return anything

如果我不保存 $result 值,我会得到

Host       : [myhost]
Output     : {}
ExitStatus : 128

它指向一条错误消息。但是,如果我不知道控制台的输出到底是什么,我将永远无法调试它。所以我想我这里有两个问题。

1)如何在我的 shell 中获取远程控制台的真实输出

2)如何使 git pull 工作

还有一个普遍的问题:

PowerShell 是否是自动执行这些任务的合适工具,还是我应该使用其他工具?谢谢

相关内容