当我尝试从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...
如何进一步解决此问题?
答案 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