8

这里有一点背景:

  1. 我运行Win7
  2. 我有私人 git repo 并安装了 Github for Windows
  3. 我不喜欢 Github for Windows 客户端(缺乏功能)。我为 Windows 安装了 TortoiseGit(仍然保留 Github for Windows)
  4. 我完全按照这里的步骤http://dancingmonkeysaccelerated.blogspot.com/2012/03/git-for-windows-with-tortoisegit-and.html
  5. 我可以获取日志并在本地提交

在此处输入图像描述

  1. 然后我推

在此处输入图像描述

  1. 但是它给出了错误git did not exit cleanly (exit code 128)

在此处输入图像描述

我读了这个线程:

如何解决 TortoiseGit 上的“git 没有完全退出(退出代码 128)”错误?

实际上已经通过运行 Puttygen 三次来更改 SSH 密钥。我还在文件夹中为用户设置了完全权限。没有任何效果!!

这是我在环境路径中看到的

PATH=(其他);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 问题的方向吗?

4

5 回答 5

2

通用答案

每次git.exe执行它都会返回一个退出代码(参见git 是否返回特定的返回错误代码?)。

退出代码0表示成功。

在 StackOverflow 帖子中提到了退出代码 128,这表示错误:

(exit code 128)是某种“意外错误”(参见https://stackoverflow.com/a/8059956/3906760)。这意味着什么高度依赖于执行的 git 命令和它发出的输出。因此,对于如何解决这个问题,没有一个简单而简短的答案。

以下帖子包含与推送案例相关的特定答案,最后是更通用的答案(如果这没有帮助部分)。


回答最初的 Stackoverflow 帖子的情况

git.exe以下答案基于执行推送的事实。

通过 SSH 使用 TortoiseGit

这里需要区分 OpenSSH 和 PuTTY。(见这里

开放SSH

为了使用 OpenSSH,您必须ssh.exe在 TortoiseGit 设置 -> 网络上设置为“SSH 客户端”。
默认情况下, OpenSSH 使用%HOME%/.ssh/id_rsa(.pub)文件作为其公钥/私钥,这些文件必须由 OpenSSHssh-keygen而不是 PuTTYGen 创建(PuTTY 密钥具有不同的格式,但是也可以使用 PuTTYGen 进行转换)。
如果%HOME%没有设置,TortoiseGit 会自动设置,如果你手动设置,%HOME%请确保它是有效的(你可能必须使用斜杠而不是反斜杠)。

建议已经拥有 OpenSSH 密钥的人使用此方法。

油灰

在 Windows 上首选的 PuTTY 要求使用 PuTTYGen(随 TortoiseGit 提供)创建公钥/私钥。
TortoiseGitPlink.exe需要在 TortoiseGit 设置 -> 网络上选择 ssh 客户端 - 这应该是默认设置。但是,公钥/私钥没有默认位置,因此必须对其进行配置。有(至少有两种方法可以做到这一点):

  1. 将您的密钥配置为基于 PuTTY 的应用程序中的默认密钥。为此,请打开 PuTTY(TortoiseGit 不附带,必须单独下载)。然后转到 Connection-> SSH -> Auth 配置页面并选择您的 .ppk 文件作为“用于身份验证的私钥”,返回“会话”配置页面,在那里选择“默认设置”并点击保存。-> 从现在开始,PuTTY 和 PLink 将使用此密钥进行身份验证。

  2. 为了让 TortoiseGit 加载一个用于 PuTTY 的私钥,必须对其进行配置。

    • 对于现有存储库:选择一个存储库,打开 TortoiseGit 设置 -> 远程并在此处选择您的远程存储库配置(通常为“源”)。然后选择您的私人 .ppk 密钥并点击“添加新/保存”。
    • 对于新存储库,可以在克隆时选择密钥。推/拉时确保选中“Autoload putty key”。

更多使用 PuTTY 的提示/技巧。


如果这没有帮助

首先,我们需要确保git.exe调用了正确的 - 通常情况下应该是这样,因为 TortoiseGitgit.exe在第一次启动时会努力在系统上找到正确的。这可以通过转到 TortoiseGit 设置 -> 常规来轻松完成。应该检查“ git.exePath”是否指向“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 文档

现在单击“立即检查”并检查按钮旁边是否显示正确的版本号(不是没有错误消息)。
如果这有效,git.exe则应正确配置并使用 https。

于 2014-09-29T13:13:17.470 回答
1

我遇到了同样的问题,我通过以下方式解决了它......

我安装了 NVIDIA “Tegra Android Development Pack”,它似乎也有一个 mysysgit.exe 版本。TortoiseGit 自动找到安装位置(而不是标准的 git 安装)并在设置菜单中自动填充它。

要更正此问题,请转到:“设置 -> 常规”,并且有一个字段用于 mysysgit.exe 的路径。确保这指向正确的安装。

于 2013-09-05T14:17:28.920 回答
0

我想我为 Windows 找到了更好的选择:http ://www.syntevo.com/smartgithg/index.html

到目前为止它一直在工作。但如果我能让 TortoiseGit 工作,我仍然更喜欢它。

于 2013-02-19T08:48:09.417 回答
0

就我而言,我从 Git Bash 做出了那个提交(没有干净地退出的受害者)。并尝试了 Tortoise 的下一个提交,它奏效了!

于 2018-06-30T11:14:50.617 回答
0

我无法将 git repo 克隆到我的本地文件夹中,下面是修复它的命令

git config --global http.sslverify false

于 2021-07-26T20:56:04.980 回答