尝试创建提交消息时出现Cygwin + git权限问题

时间:2008-11-01 21:32:53

标签: git permissions cygwin vim

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

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

如何进一步解决此问题?

4 个答案:

答案 0 :(得分:2)

  

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

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

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

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

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

Caveat Emptor,未经测试。

答案 1 :(得分:1)

您正在使用cygwin中的mingw或msysgit git( windows native )。使用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。然后我们可以看到更多。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

对于`cygpath',请尝试:

cygdrive -a -m COMMIT_EDITMSG

您可能希望使用以下样式的路径:

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