TortoiseGit麻烦:git没有干净地退出(退出代码128)

时间:2013-02-13 07:11:00

标签: git github tortoisegit github-for-windows

这里有一点背景知识:

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

    1. 然后我推
    2. enter image description here

      1. 但是错误git did not exit cleanly (exit code 128)
      2. enter image description here

        我读了这个帖子:

        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问题吗?

5 个答案:

答案 0 :(得分:2)

通用答案

每次执行git.exe时,都会返回退出代码(参见Does git return specific return error codes?)。

  

退出代码0表示成功。

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

  

(exit code 128)是某种"意外错误" (参见https://stackoverflow.com/a/8059956/3906760)。   这意味着高度依赖于执行的git命令及其发出的输出。因此,对于如何解决这个问题,不能简单回答。

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


回答初始Stackoverflow帖子

的情况

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

使用TortoiseGit和SSH

这里需要区分OpenSSH和PuTTY。 (See here

的OpenSSH

要使用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客户端 - >网络 - 应该是默认的。但是,公钥/私钥没有默认位置,因此必须配置 。有(至少有两种方法):

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

  2. 为了使TortoiseGit加载私钥以便与PuTTY一起使用,必须对其进行配置。

    • 对于现有存储库:选择存储库,打开TortoiseGit设置 - >远程并在那里选择您的远程存储库配置(通常" origin")。然后选择您的私人.ppk键并点击"添加新/保存"。
    • 对于新存储库,可以在克隆时选择密钥。 推/拉时确保" Autoload putty key"检查。
  3. 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