GitHub & Tortoisegit:git 没有干净地退出(退出代码 128)

Posted

技术标签:

【中文标题】GitHub & Tortoisegit:git 没有干净地退出(退出代码 128)【英文标题】:GitHub & Tortoisegit: git did not exit cleanly (exit code 128) 【发布时间】:2021-11-23 23:45:30 【问题描述】:

我克隆了一个存储库,效果很好。 不幸的是,我里面的文件有问题,所以我决定从新开始。 我删除了github上的repo和我电脑上的文件夹。

之后我再次创建了 repo 并尝试将其克隆回 PC 我一直收到此错误。

git.exe clone --progress -v "git@github.com:USER/REPOSITORY.git" "E:\FOLDERNAME"
Cloning into 'E:\FOLDERNAME'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


git did not exit cleanly (exit code 128) (672 ms @ 03.10.2021 01:07:48)

我尝试了很多方法来解决这个问题:

重新生成新的 SSH 密钥并将其存储在 github 上 创建另一个具有不同名称的存储库 重新安装乌龟git 还试图找到一个index.lock(找不到) 重新配置名称和电子邮件(也使用 git bash)(这些信息是否必须与 github 帐户上的相同?)

这很奇怪,但尽管我重新安装了全新的 tortoise git,但他仍然显示正确的 SSH-Key 路径,但它是灰色的,所以如果我想更改,我也无法更改。

尝试了来自How to resolve "git did not exit cleanly (exit code 128)" error on TortoiseGit?的所有解决方案

【问题讨论】:

【参考方案1】:

首先尝试直接从命令行克隆它:

git -c "core.sshcommand='ssh -Tv'" clone --progress -v "git@github.com:USER/REPOSITORY.git" "E:\FOLDERNAME"

core.sshcommand='ssh -Tv' 会告诉您是否正在读取正确的 SSH 密钥。

检查您没有任何 SSH_xxxGIT_SSHxxx 环境变量。

一旦克隆从命令行运行,您就可以开始并通过 TortoiseGit 进行尝试。

【讨论】:

感谢您的回答。没有设置环境变量。 $ git -c "core.sshcommand='ssh -Tv'" clone --progress -v "git@github.com:USER/REPOSITORY.git" "E:\FOLDERNAME" 克隆到 'E:\FOLDERNAME'.. . 'ssh -Tv': ssh -Tv: command not found fatal: 无法从远程存储库读取。请确保您拥有正确的访问权限并且存储库存在。 TortoiseGit -> Show Environment Variables 显示一个包含变量的文件 (PatB03E.tmp),但我无法通过 wondows 设置找到它们。 GIT_SSH=C:\Program Files\Git\usr\bin\ssh.exe SVN_SSH=C:\Program Files\Git\usr\bin\ssh.exe DISPLAY=:9999 SSH_ASKPASS=C:\Program Files\TortoiseGit\bin\ SshAskPass.exe GIT_ASKPASS=C:\Program Files\TortoiseGit\bin\SshAskPass.exe GIT_ASK_YESNO=C:\Program Files\TortoiseGit\bin\SshAskPass.exe @C.Hillert 是的,永远不要使用 putty 或 Tortoise SSH。始终使用 Git For Windows 附带的 openSSH。【参考方案2】:

找到了解决办法。由于一些故障排除解决方案,我将TortoiseGit > Settings > Network 的 SSH 客户端从 ssh.exe 更改为 git 使用的相同。因此,TortoiseGit 克隆窗口中的私钥路径字段是灰色的。 我现在输入了TortoiseGitPlink.exe,所以该字段被释放,现在我可以设置新的私钥路径了。

不幸的是,现在我收到了错误 No supported authentication methods available (Sever sent: public key)。 所以我将 SSH-Client 改回ssh.exe(没有直接路径),现在它工作正常!

我真的不知道出了什么问题,但它现在有效,我很高兴。

【讨论】:

以上是关于GitHub & Tortoisegit:git 没有干净地退出(退出代码 128)的主要内容,如果未能解决你的问题,请参考以下文章

软件git,github for window,tortoisegit有啥区别

TortoiseGit在github上创建工程

软件git,github for window,tortoisegit有啥区别

软件git,github for window,tortoisegit有啥区别

软件git,github for window,tortoisegit有啥区别

TortoiseGit上传项目到github方法(超简单)