这里有一点背景:
git did not exit cleanly (exit code 128)
错误我读了这个帖子:
How to resolve "git did not exit cleanly (exit code 128)" error on TortoiseGit?
实际上已经通过运行Puttygen三次更改了SSH密钥。我还在文件夹中设置了用户的完全权限。什么都行不通!!
这是我在环境路径中看到的
PATH =(其他); C:\ Users \用户名为myUsername \应用程序数据\本地\ GitHub的\ PortableGit_93e8418133eb85e81a81e5e19c272776524496c6 \的libexec \ GIT-芯;
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?)。
0
的退出代码表示成功。
在StackOverflow帖子中,提到退出代码128,表示错误:
(exit code 128)
是某种“意外错误”(参见https://stackoverflow.com/a/8059956/3906760)。这意味着高度依赖于执行的git命令及其发出的输出。因此,对于如何解决这个问题,不可能有一个简单而简单的答案。
以下帖子包含一个特定的答案,它与推案有关,最后是一个更通用的答案(如果这没有帮助部分)。
以下答案基于以下事实:git.exe
被执行以进行推动。
这里需要区分OpenSSH和PuTTY。 (See here)
要使用OpenSSH,您必须在TortoiseGit设置 - >网络上将ssh.exe
设置为“SSH客户端”。
默认情况下,OpenSSH使用%HOME%/.ssh/id_rsa(.pub)
文件作为公钥/私钥,必须由OpenSSH ssh-keygen
而不是PuTTYGen创建(PuTTY键具有不同的格式,但也可以使用PuTTYGen转换)。
如果未设置%HOME%
,TortoiseGit将自动设置它,如果您手动设置%HOME%
请确保它是有效的(您可能必须使用斜杠而不是反斜杠)。
建议已经拥有OpenSSH密钥的人使用。
PuTTY,在Windows上首选,要求使用PuTTYGen(随TortoiseGit一起提供)创建公钥/私钥。
需要在TortoiseGit设置 - >网络上选择TortoiseGitPlink.exe
作为ssh客户端 - 这应该是默认设置。但是,公钥/私钥没有默认位置,因此必须配置这些位置。有(至少有两种方法):
More tips/tricks for using PuTTY.
首先,我们需要确保调用正确的git.exe
- 通常应该是这样的情况,因为TortoiseGit在第一次启动时努力在系统上找到正确的git.exe
。这可以通过转到TortoiseGit设置 - >常规来轻松完成。有人应检查“git.exe
路径”是否指向“Git for Windows”的右侧文件夹(必须指向Git for Windows安装的bin文件夹,而不是cmd文件夹 - 但这应该自动发生) - 如果是msysgit(使用“Git for Windows”的开发版本,有必要将[MSYSGIT-INSTALL-PATH]\mingw\bin-folder
放在路径上(即在Extern DLL Path文本框中输入)以便执行git.exe
(否则需要.dll文件)。 (见TortoiseGit docs)
现在单击“立即检查”并检查按钮旁边是否显示正确的版本号(不是没有错误消息)。
如果这样做,git.exe
应该正确配置并使用https。
我遇到了同样的问题,我通过以下方式解决了这个问题......
我安装了NVIDIA“Tegra Android开发包”,它似乎也有一个版本的mysysgit.exe。 TortoiseGit自动找到安装位置(而不是标准的git安装)并在设置菜单中自动填充它。
要更正此问题,请转到:“设置 - >常规”,并且mysysgit.exe的路径有一个字段。确保这指向正确的安装。
我想我找到了一个更好的Windows替代品:http://www.syntevo.com/smartgithg/index.html
它到目前为止一直在努力。但是我仍然喜欢TortoiseGit,如果我可以让它工作。
在我的情况下,我从Git Bash那里做了那个提交(没有彻底退出的受害者)。并尝试了Tortoise的下一个提交,它有效!