我在 cygwin 下使用 git,但它没有将提交消息的正确路径传递给我的编辑器。
我正在位于我的驱动器上的测试存储库中工作:
d:\X\git\myproject
在 cygwin 终端中,该路径显示为:
/cygdrive/d/X/git/myproject
当我在没有 -m 标志的情况下提交时(以便打开编辑器让我输入消息),我的编辑器尝试将文件写入错误的路径:
d:\cygdrive\d\x\git\myproject\.git\commit_editmsg
注意添加“\cygdrive\d”
如何让 git 将 windows 路径(而不是 cygwin/unix 路径)传递给我的编辑器?
cygwin 有一个名为cygpath
它可用于在 cygwin 和本机 Windows 文件路径之间进行转换。例如:
$ cygpath --windows /cygdrive/d/X/git/myproject
D:\X\git\myproject
我们将创建一个脚本,该脚本使用此实用程序来转换路径,然后再将其传递给编辑器。我们将使用 emacs 作为示例,假设它安装在C:\emacs
。创建一个名为~/bin/git-editor.sh
:
#!/bin/sh
/cygdrive/c/emacs/bin/emacsclientw.exe $(cygpath --windows "${1}")
(因为这是Windows,我们不需要在此文件上设置可执行标志)
现在,将 git 编辑器设置为指向此脚本:
$ git config --global core.editor "~/bin/git-editor.sh"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)