Strange problem with git repo?

不羁岁月 提交于 2019-12-07 05:21:42

问题


I just upgraded to OSX Lion on my Mac and I aquired a strange problem with a git repo. I have my .vim files under version control with a number of plugins configured as git submodules. After upgrading, I ran a git status command into my .vim directory and got the following:

fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed
fatal: git status --porcelain failed

Does anyone know what my problem is? I searched the above error message on Google and SO, but I didn't find any answers. I've also noticed that git seems to be very slow now. Also, I have no other problems in other git repos (expect the slowness problem), which makes me think the problem is not related to Lion. Does anyone have any suggestions for how I can fix my .vim repo? Thanks in advance for the help.

Here is some of the trace output requested by drizzd:

setup: worktree: /Users/sbrown/.vim/bundle/supertab  
setup: cwd: /Users/sbrown/.vim/bundle/supertab  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/surround  
setup: cwd: /Users/sbrown/.vim/bundle/surround  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim/bundle/tasklist  
setup: cwd: /Users/sbrown/.vim/bundle/tasklist  
setup: prefix: (null)  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  
setup: git_dir: .git  
setup: worktree: /Users/sbrown/.vim  
setup: cwd: /Users/sbrown/.vim  
setup: prefix: bundle/vim-colors-solarized/  
trace: built-in: git 'status' '--porcelain'  
trace: run_command: 'status' '--porcelain'  
trace: exec: 'git' 'status' '--porcelain'  

回答1:


For future reference, the only way I could correct the problem was to remove all submodules and then reinstall them.




回答2:


In case it helps anyone else, I just encountered the same issue and found that running git init in the project root fixed it.




回答3:


Your git-project (or at least one of your submodules, if you have some) became corrupted. This means that some of the files in your .git-folder(s) are corrupt or missing.

Fix git-repo

As Jordan mentioned: Go to your root and run git init. Then try git status again.

Fix submodules

If this doesn't work, navigate to your submodule-folder(s) and try git init again. Go back to root and run git status.

Why is it broken?

One answer could be, that there are problems with the access-permissions. Maybe you're working with several users on the working copy?

Another answer could be some kind of sync-software like OwnCloud, Dropbox, Google Drive or like in my case BitTorrent Sync. My working copies are located in the sync-folder, which is synced between my computer at work and at home. This causes some issues with permissions.

Hope it helps.



来源:https://stackoverflow.com/questions/7301329/strange-problem-with-git-repo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!