这里有一点背景知识:
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问题吗?
答案 0 :(得分:2)
每次执行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,您必须将ssh.exe
设置为" SSH客户端"在TortoiseGit设置 - >网络。
默认情况下,OpenSSH使用%HOME%/.ssh/id_rsa(.pub)
个文件作为公钥/私钥,必须由OpenSSH ssh-keygen
而不是PuTTYGen创建(PuTTY键的格式不同,但也可以使用PuTTYGen转换)。登记/>
如果未设置%HOME%
,TortoiseGit会自动设置它,如果您手动设置%HOME%
,请确保它有效(您可能必须使用斜杠而不是反斜杠)。
建议已经拥有OpenSSH密钥的人使用。
PuTTY,在Windows上首选,要求使用PuTTYGen(TortoiseGit附带)创建公钥/私钥。
需要在TortoiseGit设置中选择TortoiseGitPlink.exe
作为ssh客户端 - >网络 - 应该是默认的。但是,公钥/私钥没有默认位置,因此必须配置 。有(至少有两种方法):
将您的密钥配置为基于PuTTY的应用程序中的默认密钥。 为此,打开PuTTY(不与TortoiseGit一起提供,必须单独为downloaded)。然后转到Connection-> SSH - >验证配置页面并选择您的.ppk文件作为"用于身份验证的私钥",返回到"会话"配置页面,选择"默认设置"在那里击中保存。 - >从现在开始,PuTTY和PLink将使用此密钥进行身份验证。
为了使TortoiseGit加载私钥以便与PuTTY一起使用,必须对其进行配置。
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
在路径上(即在Extern DLL Path文本框中输入)才能执行git.exe
(否则需要.dll文件)。 (见TortoiseGit docs)
现在点击"立即检查"并检查按钮旁边是否显示正确的版本号(不是没有错误消息)
如果这样做,则应正确配置git.exe
并使用https。
答案 1 :(得分:1)
我遇到了同样的问题,我通过以下方式解决了这个问题......
我安装了NVIDIA“Tegra Android开发包”,它似乎也有一个版本的mysysgit.exe。 TortoiseGit自动找到安装位置(而不是标准的git安装)并在设置菜单中自动填充它。
要更正此问题,请转到:“设置 - >常规”,并且mysysgit.exe的路径有一个字段。确保这指向正确的安装。
答案 2 :(得分:0)
我认为我找到了更好的Windows替代方案:http://www.syntevo.com/smartgithg/index.html
到目前为止它一直在工作。但如果能让它发挥作用,我仍然更喜欢TortoiseGit。
答案 3 :(得分:0)
在我的情况下,我从Git Bash提交了该承诺(完全没有退出的受害者)。并尝试了Tortoise的下一次提交,该提交成功了!
答案 4 :(得分:0)
我无法将 git repo 克隆到我的本地文件夹中,下面是修复它的命令
git config --global http.sslverify false