每天早上我都会上班并执行一些git命令,让我了解我的团队。它们如下:
git remote update
git merge main/master
我使用PowerShell作为我的首选命令行工具,每当我输入第一个命令(git remote update
)时,我都会收到提示,询问我的SSH密钥密码:
输入密钥'/c/Users/myUsername/.ssh/id_rsa'的密码:
通常我会继续进行此操作,但我希望使用PowerShell脚本自动执行此过程。我所做的就是将我的密码短语放入.txt文件中(不是最安全的,但是一旦管道工作,我就可以解决这个问题)并且每次运行脚本时都将其解除。但我看不出将它传递给命令的方法?这是我的代码:
Set-Location C:\path\to\repo
$pass = Get-Content C:\path\to\passphrase.txt -First 1
git remote update
git merge main/master
我预计,一旦git remote update
运行,它会像往常一样提示我使用密码,然后继续,并计划从那里构建,但事实并非如此。它只是失败了一个git错误:
git : Permission denied, please try again.
At line:3 char:1
+ git remote update
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Permission denied, please try again.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
如何将密码$pass
传递给git remote update
命令?