无法使用“Git add -i”

Con*_*Lee 3 git perl

尝试将文件修补到上次提交,因此我运行“ git add -p”和“ git add -i”,但收到以下错误:

输出

那是:

D:\Working\test>git add-i
      0 [main] perl 375 child_copy: stack write copy failed, 6xFFFFC480..8x10000000e, done 6444523849, windows pid 15080, Win32 error 5
      [main] perl 375 child_copy: stack write copy failed, exFFFFC480..9x1000eeeee, done 6444523049, windows pid 15880, Win32 error 5
    481 [main) perl 375 dofork: child 376 - pid 13800, exitval ex183, errno 11 
     Can't fork, trying again in 5 seconds at C:/Program Files/Git/ming64/share/per15/Git.pm line 1647.
     main) perl 375 dofork: child 377 pid 4888, exitval ex103, errno 11 Can't fork, trying again in 5 seconds at C:/Program Files/Git/mingw64/share/per15/Git.pm line 1647.

D:\Working\test>git add -p
    0 [main] perl 9 child_copy: stack write copy failed, exFFFFC460..ex1eeeeeeee, done 6444523849, windows pid 7892, Min32 error S ses [main] perl 9 dofork: child 10 pid 11876, exitval ex183, errno 11
    Can't fork, trying again in 5 seconds at C:/Program Files/Git/mingw64/share/per15/Git.pm line 1647. 5033325 [main] perl 9 child 
     copy: stack write copy failed, exFFFFC460..9x100000000, done 6444523849, windows pid 7892, Win32 error 5 5033826 [main] perl 9 dofork: child 11 - pid 12220, exitval ex103, errno 11 Can't fork, trying again in 5 seconds at C:/Program Files/Git/ming 64/share/per15/it.pm line 1647.

Run Code Online (Sandbox Code Playgroud)

尝试卸载并安装Git,但问题仍然存在。

Von*_*onC 5

感谢@torek的评论,我在安装Per后成功使用了这些命令

你不应该。

  1. Windows 版 Git的最新版本不再使用 Perl git add ( mingw64/libexec/git-core/git-add.exe)。自 Git 2.25, Q1 2020 以来,这是用 C 重写的。
  2. perl.exe是 Git for Windows 发行版的一部分:确保您%PATH%包含C:\path\to\Git\usr\bin

Git 无需安装 Perl 即可运行。


2年后(2022年第一季度),Git 2.36(2022年第二季度),单键交互模式下“ git add -iman的C重写还有收尾工作。

请参阅Phillip Wood的提交 0f584de提交 6606d99提交 e4938ce提交 02af15d(2022 年 3 月 16 日。 请参阅Junio C Hamano ( )提交的 32f3ac2(2022 年 3 月 9 日)。(由Junio C Hamano 合并 -- --提交 d723492中,2022 年 3 月 30 日)phillipwood
gitster
gitster

terminal:恢复 SIGTSTP 上的设置

签字人:菲利普·伍德

如果用户在等待按键时暂停 git,则在停止之前重置终端,并在 git 恢复时恢复设置。
如果用户尝试在后台恢复,则在再次停止之前打印一条错误消息(注意使用异步安全函数)。
理想情况下,当 git 恢复时,我们会为用户重新打印提示,但此补丁只是重新启动read().

信号处理程序是用sigaction()而不是使用建立的sigchain_push(),因为这允许我们在调用处理程序时控制信号掩码,并SA_RESTART在恢复时使用确保重新启动 read()。