我最近在新的Windows XP安装上安装了Cygwin以及Git二进制文件和TortoiseGit的副本。我似乎能够通过TortoiseGit进行大多数Git操作,例如查看日志等,但是当我通过TortoiseGit提交时,我收到此消息......
错误:无法创建临时sha1 filename:没有这样的文件或目录
我可以通过命令行提交 - 我似乎无法通过gui界面提交!
答案 0 :(得分:2)
TortoiseGit针对Windows的Git进行了优化。
然而,从TortoiseGit 1.8.13.0开始,Cygwin git也可以与TortoiseGit一起使用。
您必须在TortoiseGit设置上进行如下配置:打开TortoiseGit设置对话框并打开常规页面。
1)选择[CYGWIN-INSTALL-PATH] \ bin-folder作为git.exe文件夹。
2)在Windows中配置HOME环境变量,以便Cygwin 和TortoiseGit使用相同的主目录和全局 混帐配置。在此处使用常规Windows表示法(例如, “C:\ Users \用户名”)。默认情况下,TortoiseGit使用Windows主页 目录通常位于c:\ Users和Cygwin下使用它 自己的主目录位于 [CYGWIN-INSTALL-PATH] \回家。
3)配置AutoCrLf,这是必要的TortoiseGit和Cygwin Git 有不同的默认值。 Cygwin Git中的默认值为true。
4)转到TortoiseGit,在“高级设置”部分进行设置 CygwinHack为true以激活cygwin变通办法。
5)重新启动。
基于https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html
答案 1 :(得分:1)
我有同样的问题(决定使用在cygwin下安装的git而不是msysgit中的git)。同样的事情:我能够从命令行提交,我也能够在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
)。
如果这对你有用,请告诉我。
答案 2 :(得分:1)
这是已知的已知问题,但现在标记为已修复。有关背景信息,请参阅https://tortoisegit.org/issue/56,并且重复https://tortoisegit.org/issue/609。
答案 3 :(得分:0)
“无法创建临时sha1文件名”问题已通过以下方式解决:
https://stackoverflow.com/a/685422/431606
我只是在我的存储库中运行git repack
(从命令行),并且TortoiseGit立即能够提交。
(我仍然无法通过TortoiseGit,因为我收到错误消息“致命:远程端意外挂断”,如https://tortoisegit.org/issue/56中所述)
答案 4 :(得分:0)
我尝试了这些解决方案,但它们对我不起作用。将cygwin目录中所有与GIT相关的可执行文件移动到不在我的路径中的子文件夹中的工作是什么,然后我从http://git-scm.com/安装了最新版本的GIT,将已安装的GIT可执行文件的位置添加到我的路径中,杀死所有Windows资源管理器实例bash windows,启动了Windows资源管理器的新实例,然后,我能够通过TortoiseGit提交。目前(2014年3月4日)git的cygwin版本为1.7.9,而http://git-scm.com/的最新版本为1.9.0。这似乎有所作为。
答案 5 :(得分:-1)
您是否尝试过重启机器?我曾经遇到过一次Tortoise安装问题,但这解决了这个问题。