它看起来像 msysgit 的 issue 428。
(来自issue 467)
由 michaelrgeddes 报道,2010 年 4 月 7 日
哪些步骤会重现问题?
从 cmd 外壳
set GIT_EDITOR=false
set ERRORLEVEL=
git commit
if errorlevel 1 echo Has an error %ERRORLEVEL%
希望看到“有错误 1”,但没有。
git 版本 1.7.0.2.msysgit.0 在 Vista 上运行。
很重要,因为它会导致 :Gcommit 'fugitive' vim 集成失败。
解决方案:修补您当前安装的 msysgit 的 cmd/git.cmd 脚本。
cmd/git.cmd | 6++++--
1 个文件更改,4 个插入(+),2 个删除(-)
diff --git a/cmd/git.cmd b/cmd/git.cmd
index 048f615..8cd4397 100644
--- a/cmd/git.cmd
+++ b/cmd/git.cmd
@@ -19,13 +19,15 @@
@rem Set the console codepage to match the GUI codepage.
@chcp %cp_ansi% > nul
@git.exe %*
+@set ErrorLevel=%ErrorLevel%
@rem Restore the original console codepage.
@chcp %cp_oem% > nul
@goto quit
:gui
@if "%2"=="citool" @goto default
-@start wish.exe "%git_install_root%\libexec\git-core\git-gui" -- %2 %3 %4 %5 %6 %7 %8 %9
+@for /f "tokens=1-1*" %%a in ("%*") do @set args=%%b
+@start "git-gui" wish.exe "%git_install_root%\libexec\git-core\git-gui" -- %args%
:quit
-@%COMSPEC% /c exit /b %ErrorLevel%
+@"%COMSPEC%" /c exit /b %ErrorLevel%