如何使用Windows编辑器从cygwin添加拆分Git diff hunk

时间:2014-08-06 22:31:09

标签: windows git cygwin

我需要在执行git add -p时拆分一个大块头。 但是交互期间的e选项不起作用。我将解释为什么它不起作用并询问我能做些什么才能使它发挥作用。

所以我的大块头看起来像下面的代码。从其他研究中我了解到我应该使用e选项,然后我的编辑将提出大块的行,我可以删除那些我不想要的。

+ virtual bool fat() const {
+    return true;
+ }
+ virtual bool lazy() const {
+    return true;
+ }

显然,我只想提交fat方法,并将惰性方法留给另一个提交。

问题是我从Cygwin运行Git,我的编辑器设置如下:

export EDITOR=/cygdrive/c/csm/notepad2/Notepad2.exe

顺便提一下,当我提交消息时,这会完美地启动编辑器。

当我检查编辑器的命令行时,它看起来像

c:\csm\notepad2\Notepad2.exe /home/csm/path/to/my/code/.git/addp-hunk-edit.diff

显然,这是Windows和Cygwin混合两种非混合物的时代之一,但我想要一个弥合这个差距的解决方案,而不是必须使用一些基于Cygwin的编辑器。

我认为问题cygwin and windows git - path confusion与我的相反,因为我使用了Cygwin附带的Git,我想使用它的Windows帮助工具,而这个问题试图集成一个Windows原生的Git使用Cygwin shell环境。

1 个答案:

答案 0 :(得分:1)

我建议设置Git编辑器而不是全局系统编辑器,但它应该适用于两者:

git config --global core.editor ~/bin/git-editor.sh

并创建包含以下内容的~/bin/git-editor.sh

/cygdrive/c/csm/notepad2/Notepad2.exe "`cygpath -w -a \"$*\"`"

cygpath转换Windows和Unix格式之间的路径。

  • -w - 从Unix转换为Windows格式
  • -a - 输出绝对路径