我需要在执行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环境。
答案 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
- 输出绝对路径