我在cygwin下使用git但它没有将正确的路径传递给我的编辑器以提交消息.
我在位于我的驱动器上的测试存储库中工作:
d:\X\git\myproject
Run Code Online (Sandbox Code Playgroud)
在cygwin终端中,它将此路径显示为:
/cygdrive/d/X/git/myproject
Run Code Online (Sandbox Code Playgroud)
当我在没有-m标志的情况下提交(以便它打开我的编辑器让我输入消息)时,我的编辑器会尝试将文件写入错误的路径:
d:\cygdrive\d\x\git\myproject\.git\commit_editmsg
Run Code Online (Sandbox Code Playgroud)
注意添加"\ cygdrive\d"
如何让git将windows路径(而不是cygwin/unix路径)传递给我的编辑器?
小智 5
cygwin有一个名为的实用程序cygpath,可用于在cygwin和本机Windows文件路径之间进行转换.例如:
$ cygpath --windows /cygdrive/d/X/git/myproject
D:\X\git\myproject
Run Code Online (Sandbox Code Playgroud)
我们将创建一个脚本,该脚本使用此实用程序在将路径传递给编辑器之前转换路径.我们将使用emacs作为示例,假设它已安装在C:\emacs.创建一个名为的文件~/bin/git-editor.sh:
#!/bin/sh
/cygdrive/c/emacs/bin/emacsclientw.exe $(cygpath --windows "${1}")
Run Code Online (Sandbox Code Playgroud)
(因为这是Windows,我们不需要在此文件上设置可执行标志)
现在,设置你的git编辑器指向这个脚本:
$ git config --global core.editor "~/bin/git-editor.sh"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |