繁体   English   中英

Windows上的Git提交(Cygwin)已损坏。

[英]Git commit on Windows (Cygwin) is broken.

我在Windows 7上安装了一个Cygwin .Git工作很好,直到几天前提交刚刚停止工作。 这是一个全新的回购日志:

wt@CO /cygdrive/u/Projects
$ mkdir Temp

wt@CO /cygdrive/u/Projects
$ cd Temp/

wt@CO /cygdrive/u/Projects/Temp
$ touch Hello.txt

wt@CO /cygdrive/u/Projects/Temp
$ git init
Initialized empty Git repository in /cygdrive/u/Projects/Temp/.git/

wt@CO /cygdrive/u/Projects/Temp
$ git add .

wt@CO /cygdrive/u/Projects/Temp
$ git commit -m "hi"
error: invalid object 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 for 'Hello
.txt'
error: Error building trees

我谷歌的地狱,无济于事。 这里发生了什么?

Cygwin git似乎是使用“create-temp-file-then-hardlink-to-destination”方法创建新的目标文件。 我认为cygwin的硬连接很混乱!

底线:使用以下方法解决:

git config --add "core.createobject" rename

(我的设置是Cygwin git,在samba上运行.git目录)

这里的问题是,Git默认创建目标文件的方法在Windows共享驱动器上不起作用,并且(与Git for Windows或msysgit不同),Cygwin的Git刚刚使用了该默认值。

直到今天 - 我是Cygwin的Git维护者 - 我刚刚重建它以使用一种在共享驱动器上工作的不同方法(它有其他缺点,但我们无法做很多事情)。 如果你再次运行Cygwin的setup-x86[_64].exe并下载最新版本的Git(v2.4.5-3或更高版本),你会发现一切都有效。

(新的Git版本刚刚上传,因此可能需要一段时间才能到达所有镜像,但我认为最多24小时,而且许多镜像比这更快。)

请使用Git for Windows Cygwin的Git开始走下坡路了一会儿。 随着时间的推移,我和我的团队遇到了越来越多的问题。 有了一个完整的Git to Windows端口(msysgit / Git for Windows项目),为什么要忍受Cygwin Git带来的烦恼和彻底的破碎? 自切换以来,我们没有遇到任何问题。

问题是回购协议正在运作,但他们神秘地破裂了。 该错误似乎表明内部git树对象的文件系统读取问题。 查看/cygdrive/u ,表示这可能是映射的网络驱动器。

尝试在本地驱动器上运行git以确认网络共享是否正常工作。

不幸的是,我没有任何确切的信息会导致失败。 您的网络共享可能不支持git期望可用的文件系统功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM