You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git执行git status耗时数分钟后提示‘not a git repository’求助

怪异Git仓库问题:git status长时间运行后抛出仓库不存在错误

问题现象

执行git status时,命令会卡顿数分钟,随后抛出以下错误:

fatal: not a git repository (or any of the parent directories): .git

复现与排查过程

  1. 在独立目录克隆远程仓库,执行git status显示nothing to commit,符合预期。
  2. 将原问题仓库中所有非隐藏文件(排除.git等以.开头的文件)复制到新克隆的仓库中。
  3. 再次执行git status,卡顿数分钟后仍抛出上述仓库不存在的错误:
% git status
(...minutes pass...)
fatal: not a git repository (or any of the parent directories): .git

目录完整性验证

执行ls -a确认.git目录存在:

% ls -a
.dockerignore 
.DS_Store
.git  
.gitignore  
.gitmodules  
.idea  
src  
Dockerfile  
Dockerfile.dev    
LICENSE.md
README.md

重复测试:重新克隆仓库后git status正常,但复制非隐藏文件后问题复现。


补充排查回复

@evolutionxbox:.git是文件还是目录?你是否在.git目录内执行Git命令?

% ls .git
FETCH_HEAD  config      hooks       info        objects
HEAD        description index       logs        refs

@Gimby:src目录中是否存在.git文件夹?一定有什么干扰了Git。

% find . -name '.gi*'

./src/.gitignore
./.gitmodules
./.gitignore
./.git
./.idea/.gitignore

解决方案建议

  • 排查特殊文件/目录:Git执行status时会遍历所有文件,若复制的文件中存在超大文件、循环符号链接或异常目录结构,可能导致遍历超时。可通过du -sh src/检查目录大小,用find . -type l -exec test -e {} \; -print排查循环链接。
  • 修复.git目录权限:复制文件过程中可能意外修改.git权限,执行以下命令修复:
    chmod -R 755 .git
    chmod 644 .git/*
    
  • 处理子模块冲突:仓库包含.gitmodules,尝试初始化子模块后再测试:
    git submodule init
    git submodule update
    
  • 排除系统/IDE文件干扰:删除macOS的.DS_Store或.idea配置目录后重试:
    rm .DS_Store
    rm -rf .idea
    git status
    

内容的提问来源于stack exchange,提问作者TheEnvironmentalist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:15:22