执行git add .时报非Git仓库错误,git status曾正常工作
Git初始化后git status正常但git add报错的问题分析
问题重现
在路径~/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio下执行Git操作时出现异常:
onep2@DesktopYoussef MINGW64 ~/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio $ git init Initialized empty Git repository in C:/Users/onep2/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio/.git/ onep2@DesktopYoussef MINGW64 ~/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio (master) $ git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) css/ images/ index.html js/ nothing added to commit but untracked files present (use "git add" to track) onep2@DesktopYoussef MINGW64 ~/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio (master) $ git add . fatal: not a git repository (or any of the parent directories): .git onep2@DesktopYoussef MINGW64 ~/OneDrive/Documents/MyGithub/my-portfolio-website/potfolio
问题原因
核心原因是OneDrive的实时同步机制干扰了Git的.git目录:
- Git初始化后生成了
.git目录,但OneDrive的同步进程可能瞬间锁定、移动甚至修改了这个目录,导致执行git add .时,Git无法找到标记仓库身份的.git文件夹 - 从命令行提示符的变化也能佐证:执行
git add前提示符带有(master)分支标记,执行后标记消失,说明当前目录已不被识别为Git仓库
解决办法
- 暂停OneDrive对该文件夹的实时同步,或者直接关闭OneDrive同步进程
- 检查当前目录下是否还存在
.git文件夹:执行ls -la(Linux/macOS)或dir /a(Windows)查看- 如果
.git目录已丢失,重新执行git init初始化仓库
- 如果
- 重新执行
git add .,确认操作正常 - 长期建议:将Git仓库放在OneDrive同步目录之外,或者在OneDrive设置中添加
.git目录到排除同步列表,避免同步机制破坏Git仓库结构
内容的提问来源于stack exchange,提问作者youssef
相关产品推荐
相关产品推荐

