【问题标题】:Cygwin and TortoiseGitCygwin 和 TortoiseGit
【发布时间】:2011-04-20 11:56:51
【问题描述】:

我最近在全新的 Windows XP 安装中安装了 Cygwin 以及 Git 二进制文件和 TortoiseGit 的副本。我似乎可以通过 TortoiseGit 执行大多数 Git 操作,例如查看日志等,但是当我通过 TortoiseGit 提交时,我收到了这条消息...

错误:无法创建临时 sha1 文件名:没有这样的文件或目录

我可以通过命令行提交 - 我似乎无法通过 gui 界面提交!

【问题讨论】:

  • 也许你应该只使用 msysgit

标签: git cygwin tortoisegit


【解决方案1】:

TortoiseGit 针对 Windows 的 Git 进行了优化。

但是,从 TortoiseGit 1.8.13.0 开始,Cygwin git 也可以与 TortoiseGit 一起使用。

您必须在 TortoiseGit 设置中进行如下配置:打开 TortoiseGit 设置对话框并打开常规页面。

1) 选择[CYGWIN-INSTALL-PATH]\bin-文件夹作为git.exe文件夹。

2) 在Windows中配置HOME环境变量,使Cygwin 和 TortoiseGit 使用相同的主目录和全局 混帐配置。在此处使用正常的 Windows 表示法(例如, “C:\用户\用户名”)。默认情况下,TortoiseGit 使用 Windows 主页 通常位于 c:\Users 下的目录,Cygwin 使用它的 自己的主目录位于 [CYGWIN-INSTALL-PATH]\home.

3) 配置 AutoCrLf,这是 TortoiseGit 和 Cygwin Git 所必需的 有不同的默认值。 Cygwin Git 中的默认值为 true。

4) 转到 TortoiseGit 的“高级设置”部分并设置 CygwinHack 为 true 以激活 cygwin 解决方法。

5) 重新启动。

基于https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html

【讨论】:

    【解决方案2】:

    我遇到了同样的问题(决定使用安装在 cygwin 下的 git,而不是来自 msysgit 的那个)。同样的事情:我可以从命令行提交,也可以在 Tortoise 中查看修改指示器和查看日志,但我无法通过 GUI 提交。

    我要做的是调整我的项目的组设置和 git 可执行文件。从项目根目录的上一层,我运行了以下命令:

    chgrp -R None my_project/
    

    然后我做了以下事情:

    cd /bin
    chgrp None git.exe
    

    这将 git 可执行文件的组从原来的 (root) 更改为 None

    请注意,您可能不想使用None 组。查看 /etc/passwd 并查看以您的用户名开头的行的第四个字段(字段以冒号分隔,第一个字段是您的用户名)——第四个字段是您的主要组 ID。然后查看 /etc/group 并找到与 third 字段具有相同组 ID 的行。这就是您要在上述命令中使用的组名(代替None)。

    让我知道这是否适合您。

    【讨论】:

    • 在我的情况下,一切都已经是无,所以这不是我的解决方案。不确定为什么需要执行 chgrp,也许您以不同的用户身份安装了 git?或者我没有看到它,因为我使用的是 FAT(与 NTFS 相比)。
    【解决方案3】:

    这是已知的已知问题,但现在标记为已修复。背景见https://tortoisegit.org/issue/56,它是重复的https://tortoisegit.org/issue/609

    【讨论】:

    • 最后,第一个链接的评论 27 中的解决方法对我有用!
    【解决方案4】:

    我尝试了这些解决方案,但它们对我不起作用。起作用的是将cygwin目录中所有与GIT相关的可执行文件移动到不在我的路径中的子文件夹中,然后我从http://git-scm.com/安装了最新版本的GIT,将安装的GIT可执行文件的位置添加到我的路径中,杀死了所有Windows 资源管理器和 bash 窗口的实例,启动了一个新的 Windows 资源管理器实例,然后,我能够通过 TortoiseGit 提交。目前(2014 年 3 月 4 日)GIT 的 cygwin 版本是 1.7.9,而 http://git-scm.com/ 的最新版本是 1.9.0。这似乎有所作为。

    【讨论】:

      【解决方案5】:

      “无法创建临时 sha1 文件名”问题已通过以下方式为我解决:

      https://stackoverflow.com/a/685422/431606

      我只是在我的存储库中运行 git repack(从命令行),然后 TortoiseGit 立即能够提交。

      (我仍然无法通过 TortoiseGit,因为我收到错误消息“致命:远程端意外挂断”,如 https://tortoisegit.org/issue/56 中所述)

      【讨论】:

        【解决方案6】:

        您是否尝试过重新启动计算机。我曾经在安装 Tortoise 时遇到了一些问题,但问题解决了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多