问题:
git add -p
在 emacsshell
或eshell
magit
(经常建议在 emacs 中从 shell 中使用 git 的替代方法)在 Windows 上很糟糕(它非常慢。)- 保持 cygwin 窗口打开并使用它,
git add -p
然后在它和 emacs 之间来回切换是可行的,但有点烦人。
有什么方法可以在 Microsoft Windows 下让我git add -p
在 shell 或 eshell 中正常工作,或者变得magit
有点可用?
如果 magit 很慢,那可能表明您的 windows git 客户端有问题?
我会首先研究这一点(因为git add -p
真的不适合 magit 的界面,IMO)。
您使用的确切工具(及其版本)是什么?
您绝对应该检查 magit 问题跟踪器,看看是否有已知原因导致 magit 运行缓慢。
你有没有尝试过:
% EDITOR=emacsclient git add -e <files>
然后在运行的 emacs 中使用 diff-mode 命令以交互方式编辑补丁的大块?
然后,您将能够在补丁中的任何特定行拆分大块diff-split-hunk
并完全删除大块diff-hunk-kill
(当然这些命令绑定到较短的键序列以便快速交互使用)。编辑完补丁后,使用C-x #
来保存它并退出 emacsclient 会话(这样您就可以返回到您的 shell)。
(emacsclient,如果你不熟悉的话,它是一个程序,它可以让你在已经运行的 emacs 中打开文件,只要后者已经启动了一个服务器供 emacsclient 连接;参见M-x describe-function server-start
)
请注意,您可能希望稍微自定义 emacsclient 与 git 交互的方式;例如,请参阅以下答案:Using ediff as git mergetool和How to set the exit status for emacsclient。