这里有一点背景:
git did not exit cleanly (exit code 128)
我读了这个线程:
How to resolve "git did not exit cleanly (exit code 128)" error on TortoiseGit?
实际上已经通过运行 Puttygen 三次来更改 SSH key 。我还在文件夹中为用户设置了完全权限。没有任何效果!!
这是我在环境路径中看到的
PATH=(others);C:\Users\myusername\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\libexec\git-core;
GIT_SSH=C:\Program Files\TortoiseGit\bin\TortoiseGitPLink.exe
SVN_SSH=C:\Program Files\TortoiseGit\bin\TortoiseGitPLink.exe
SSH_ASKPASS=C:\Program Files\TortoiseGit\bin\SshAskPass.exe
GIT_ASKPASS=C:\Program Files\TortoiseGit\bin\SshAskPass.exe
但是:如果我使用
Github for Windows
它工作正常。有人可以指出解决这个 TortoiseGit 问题的方向吗?
最佳答案
通用答案
每次git.exe
执行它会返回一个退出代码(参见 Does git return specific return error codes? )。
An exit code of
0
indicates success.
在 StackOverflow 帖子中提到了退出代码 128,这表示错误:
The
(exit code 128)
is some kind of "unexpected error" (cf. https://stackoverflow.com/a/8059956/3906760). What it means is highly dependant on the git command executed and the output it issued. Therefore, there can't be a single easy and short answer on how to solve this.
以下帖子包含与推送案例相关的特定答案,最后是更通用的答案(如果这没有帮助部分)。
回答最初的 Stackoverflow 帖子的情况
以下答案基于
git.exe
的事实。被执行以运行推送。通过 SSH 使用 TortoiseGit
这里需要区分 OpenSSH 和 PuTTY。 (See here)
开放SSH
要使用 OpenSSH,您必须设置
ssh.exe
作为 TortoiseGit 设置 -> 网络上的“SSH 客户端”。OpenSSH 使用
%HOME%/.ssh/id_rsa(.pub)
默认情况下,它们的公钥/私钥文件必须由 OpenSSH ssh-keygen
创建而不是 PuTTYGen(PuTTY key 具有不同的格式,但是,也可以使用 PuTTYGen 进行转换)。如果
%HOME%
没有设置,TortoiseGit会自动设置,如果你手动设置%HOME%
请确保它有效(您可能必须使用斜杠而不是反斜杠)。建议已经拥有 OpenSSH key 的人使用此方法。
油灰
在 Windows 上首选的 PuTTY 要求使用 PuTTYGen(随 TortoiseGit 提供)创建公钥/私钥。
TortoiseGitPlink.exe
需要在 TortoiseGit 设置 -> 网络上选择 ssh 客户端 - 这应该是默认设置。但是,公钥/私钥没有默认位置,因此必须对其进行配置。有(至少有两种方法可以做到这一点):为此,请打开 PuTTY(TortoiseGit 未附带它,必须单独使用 downloaded)。然后转到 Connection-> SSH -> Auth 配置页面并选择您的 .ppk 文件作为“用于身份验证的私钥”,返回“ session ”配置页面,在那里选择“默认设置”并点击保存。 -> 从现在开始,PuTTY 和 PLink 将使用此 key 进行身份验证。
More tips/tricks for using PuTTY.
如果这没有帮助
首先我们需要确保正确的
git.exe
被调用 - 通常情况下应该是 TortoiseGit 努力寻找正确的 git.exe
在系统首次启动时。这可以通过转到 TortoiseGit 设置 -> 常规来轻松完成。应该检查“git.exe
Path”是否指向“Git for Windows”的正确文件夹(必须指向 Git for Windows 安装的 bin 文件夹,而不是 cmd 文件夹 - 但这应该自动发生) - 如果使用msysgit(“Git for Windows”的开发版),需要[MSYSGIT-INSTALL-PATH]\mingw\bin-folder
位于路径上(即在外部 DLL 路径文本框中输入)以执行 git.exe
(否则需要的 .dll 文件)找不到。 (见 TortoiseGit docs)现在单击“立即检查”并检查按钮旁边是否显示正确的版本号(不是没有错误消息)。
如果这有效,
git.exe
应正确配置并使用 https。
关于git - TortoiseGit 麻烦 : git did not exit cleanly (exit code 128),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848263/