我刚刚在Mac上升级到OSX Lion,我用git repo获得了一个奇怪的问题。我在版本控制下有我的.vim文件,其中一些插件配置为git子模块。升级后,我在我的.vim目录中运行了git status
命令并得到以下内容:
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
有谁知道我的问题是什么?我在Google和SO上搜索了上述错误消息,但我没有找到任何答案。我也注意到git现在看起来很慢。另外,我在其他git repos中没有其他问题(期待慢速问题),这让我觉得问题与Lion无关。有没有人对我如何修复我的.vim回购有任何建议?在此先感谢您的帮助。
以下是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'
答案 0 :(得分:3)
为了将来参考,我可以解决问题的唯一方法是删除所有子模块,然后重新安装它们。
答案 1 :(得分:1)
如果它对其他人有帮助,我刚遇到同样的问题,发现在项目根目录中运行git init
修复了它。
答案 2 :(得分:0)
您的git项目(或至少一个子模块,如果您有一些)已损坏。这意味着.git
- 文件夹中的某些文件已损坏或丢失。
正如乔丹所说:转到你的根并运行git init
。然后再次尝试git status
。
如果这不起作用,请导航到您的子模块文件夹并再次尝试git init
。返回root并运行git status
。
答案可能是,访问权限存在问题。也许您正在与工作副本上的多个用户合作?
另一个答案可能是某种同步软件,例如 OwnCloud , Dropbox , Google云端硬盘或类似我的情况 BitTorrent同步即可。我的工作副本位于sync-folder中,该文件夹在工作和家中的计算机之间同步。这会导致一些权限问题。
希望它有所帮助。