我需要在做git add -p
时候分割一个块。 但交互期间的e
选项不起作用。 我将解释为什么它不工作,并询问我能做些什么来使其工作。
所以我的大块可能看起来像下面的代码。 从其他研究中我已经知道,我应该使用e
选项,然后我的编辑会拿出大块的线,我可以删除我不想要的。
+ virtual bool fat() const { + return true; + } + virtual bool lazy() const { + return true; + }
很明显,我想提交只是脂肪的方法,并保留另一个提交懒惰的方法。
问题是,我从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像两种非混合的东西混合在一起的时代之一,但是我想要一个解决scheme来弥合这个差距,而不是使用一些基于Cygwin的编辑器。
我相信cygwin和windows git-path混淆的问题与我的相反,因为我使用Cygwin附带的Git,并且希望使用Windows辅助工具,而该问题旨在将Windows原生的Git与一个Cygwin shell环境。
我会建议设置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
– 输出绝对路径