1

当我尝试从 Cygwin 将第一个修订版提交到我的 git 存储库(git commit)时,我在 gvim 中收到一个错误,上面写着“无法打开“foo\.git\COMMIT_EDITMSG”[新目录]的交换文件。我认为这可能是某种权限问题,但我尝试从文件夹中删除只读标志,以及递归调整所有者(使用 Windows 属性选项卡,而不是 Cygwin 下的 chown)作为我的帐户m 下运行,没有任何运气。如果我将默认编辑器更改为记事本,我会得到“系统找不到指定的文件”,即使文件 (COMMIT_EDITMSG) 确实存在,甚至包含:

# Please enter the commit message for your changes.
# (Comment lines starting with '#' will not be included)
# etc...

如何进一步解决此问题?

4

4 回答 4

3

无法打开“foo\.git\COMMIT_EDITMSG”[新目录] 的交换文件。

看起来git commit将文件路径作为 Windows 路径而不是 POSIX 路径传递。注意\消息中的。

gvim将尝试打开不存在的“foo.gitCOMMIT_EDITMSG”。

我不使用git,但我想它使用类似于SVN_EDITOR. 您可能需要使用一个小脚本来包装编辑会话,该脚本用于cygpath将文件路径从 Windows 更改为 Posix 分隔符。

#!/bin/bash
gvim "$(cygpath --unix "${1}")"

警告 Emptor,未经测试。

于 2008-11-01T21:54:06.127 回答
1

您在 cygwin ( windows native ) 中使用 mingw 或 msysgit git。这在使用 cygwin 编辑器 (gvim) 时不起作用。\ 不是 POSIX 中的路径分隔符,而是转义下一个字符。

您需要安装 cygwin git 包或使用适当的 mingw/msysgit 编辑器。

也可能是 mingw git.exe 在 /usr/bin 之前的 PATH 中。然后修复你的PATH。

此类问题通常通过http://cygwin.com/problems.html处理,尤其是。cygcheck -s -v -r > cygcheck.out 在邮件列表中。然后我们可以看到更多。

于 2010-12-20T20:59:40.597 回答
0

对于“cygpath”,尝试:

cygdrive -a -m COMMIT_EDITMSG

您可能需要以下样式的路径:

D:/path/to/your/working_directory/.git/COMMIT_EDITMSG

于 2011-01-23T15:56:20.313 回答
0

我第一次遇到同样的问题,但我发现这是正常的。只是我不记得如何处理 Vim。我在该链接中找到了解决方案:http: //vim.runpaint.org/basics/quitting-vim/。我使用了 vim 命令 :x 来保存我的评论并提交修改。您可以通过以下链接了解 Git 和 Vim 之间的这种集成:http: //vim.runpaint.org/extending/integrating-vim-with-git/

于 2010-02-05T19:31:49.837 回答