【发布时间】:2018-05-22 13:55:36
【问题描述】:
我有一个 powershell 脚本,它从 SFTP 下载文件,然后尝试将它们提交到 git,但是我在最后一步遇到了问题。
try
{
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Sftp
HostName = "myhostname"
UserName = "myusername"
Password = "mypassword"
SshHostKeyFingerprint = "ssh-rsa 2048 myfingerprint"
#GiveUpSecurityAndAcceptAnySshHostKey = "true"
}
$session = New-Object WinSCP.Session
try
{
New-Item -ItemType directory -Path "C:\tempfolder"
# Connect
$session.Open($sessionOptions)
# Download files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult =
$session.GetFiles("/BE_Test3rdPartyUpload2VSTS/Project1/upload/*", "c:\tempfolder\*", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host "Download of $($transfer.FileName) succeeded"
}
git config --global user.email "myusername"
git config --global user.name "myname"
git pull --rebase origin master
git push origin master
git add .
git commit -m "Add existing file"
git push origin "master"
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch [Exception]
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}
我的错误是这样的:
【问题讨论】:
-
您的
HEAD已分离。您在哪里克隆或以其他方式初始化您尝试使用的存储库?您正在将文件下载到C:\tempfolder,但我没有看到您对放置在那里的文件做任何事情,除非C:\tempfolder是您正在使用的 Git 存储库。
标签: git powershell azure-devops