问题的第一个迹象:
❯ git rebase -r master
BUG: fsmonitor.c:21: fsmonitor_dirty has more entries than the index (179457 > 1040)
zsh: abort git rebase -r master
在这种状态下“卡住”,不知道如何恢复或重现:
❯ git status
BUG: fsmonitor.c:21: fsmonitor_dirty has more entries than the index (179457 > 1040)
error: git died of signal 6
❯ git log # works
❯ git diff head~
error: git died of signal 6
BUG: fsmonitor.c:21: fsmonitor_dirty has more entries than the index (179457 > 1040)
❯ git diff head~..head~~ # works
❯ git checkout head
BUG: fsmonitor.c:21: fsmonitor_dirty has more entries than the index (179457 > 1040)
zsh: abort git checkout head
最佳答案
原来 git 的索引在 rebase 期间被损坏了。
来自:https://git.seveas.net/repairing-and-recovering-broken-git-repositories.html
mkdir .git/my_backup
mv .git/sharedindex.* .git/my_backup
mv .git/index .git/my_backup
git reset --mixed # rebuild index
更新:
可能相关的 git 邮件列表线程:
- https://public-inbox.org/git/[email protected]/T/#m3a0ae8d18c63d8372a3f3e846f0c358857e660b5
- https://public-inbox.org/git/[email protected]/T/#m13a5ad383f040bb3a6be7641bd04aa20424a274c
疑似罪魁祸首正在设置配置core.splitIndex
以及core.fsmonitor
(和/或可能feature.manyFiles
)。
尽管它可能已在 2.4.1 中修复:https://github.com/git/git/commit/3704fed5eae8ca2fa20bcf6adb277ee83b012ce0
关于git repo 已损坏,无法状态为 : "BUG: fsmonitor.c:21: fsmonitor_dirty has more entries than the index",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73044253/