无法在 psexec 模式下从 git 拉取

Unable to pull from git in psexec mode

当我从本地登录中拉出时一切正常,但是当我尝试通过 PSEXEC 登录 Windows 7 git 版本 2.28.0.windows.1 并尝试提取它正在显示的更改

git.exe :
+ CategoryInfo          : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

Process is terminated due to WhosebugException.
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for 'https://github.com': No such file or directory

只有当我尝试退出 PSEXEC 模式时才会发生这种情况,即使我也以管理员身份通过同一本地帐户登录。

该错误可能与:

  • 一个私有存储库(这意味着您需要对每个 Git 远程命令进行身份验证,例如拉取)
  • 一个凭据助手(通过 psexec 检查 git config credential.helper return)

如果有交互过程要求输入用户名,请尝试作为 workaround/test 将所述用户名包含在 HTTPS URL:

git remote set-url origin https://<username>@github.com/<username>/<myrepo>

评论中的 OP Siva Manasan 报告在指定用户名和密码时有效。

git remote set-url origin  https://<username>:<password>@github.com/<username>/<myrepo>.git

理想情况下,如果 Git for Windows (and its associated microsoft / Git-Credential-Manager-for-Windows) is installed on the remote machine accessed by psexec.

的版本足够新

首先检查 Git 在远程机器上的安装位置:

psexec <...parameters for remote machine> where git

然后使用远程凭证助手注册密码:

psexec <params> [path\to\git]\mingw64\libexec\git-core\git-credential-manager.exe store < afile

# with afile:
protocol=https
host=github.com
username=some-account
password=personaltoken

注意:最好使用PAT (Personal Access Token)而不是实际密码:更安全,而且您可以随时撤销 PAT,而无需更改密码。

然后一个简单的 URL 只有您的用户名就足够了:

git remote set-url origin  https://<username>@github.com/<username>/<myrepo>.git