在Git Bash执行touch index.html后,git status报权限拒绝警告如何解决?
解决Git Bash中权限拒绝警告的方案
你碰到的这些警告,本质是因为当前Git仓库建在了Windows的用户根目录(比如C:\Users\你的用户名)里——那些报错的文件夹都是系统保护的特殊隐藏目录,用来存储用户配置、临时数据等,Windows会限制普通进程的访问权限,Git扫描仓库目录时尝试访问它们就会被拒绝。
下面给你两种解决思路,优先推荐第一种:
方案1:把仓库迁移到专门的项目文件夹(推荐)
这是最规范的做法,用户根目录里有太多系统文件,本来就不适合作为Git仓库的根目录:
- 先创建一个专属的项目文件夹,比如:
mkdir ~/my-web-project - 把你创建的
index.html移到这个新文件夹里:mv index.html ~/my-web-project/ - 进入这个项目文件夹:
cd ~/my-web-project - 如果之前你是在用户根目录初始化的Git仓库,记得把根目录下的
.git文件夹也移过来(要是不需要保留之前的仓库记录,直接重新初始化也行):mv ~/.git ~/my-web-project/ - 现在再执行
git status,就不会看到那些权限警告了——这个项目文件夹里没有那些受保护的系统目录,Git扫描起来毫无障碍。
方案2:在当前仓库添加.gitignore忽略系统目录
如果你确实需要在用户根目录用Git(比如用来管理个人配置文件),可以通过忽略这些无法访问的目录来消除警告:
- 在当前仓库根目录创建
.gitignore文件:touch .gitignore - 用编辑器打开
.gitignore,把所有报错的目录添加进去,每个目录单独占一行:AppData/Local/Application Data/ Application Data/ Cookies/ Local Settings/ My Documents/ NetHood/ PrintHood/ Recent/ SendTo/ Start Menu/ Templates/ - 保存后,把
.gitignore提交到仓库:git add .gitignore git commit -m "Add ignore rules for Windows system directories" - 之后再运行
git status,Git就会跳过这些目录的扫描,警告自然就消失了。
内容的提问来源于stack exchange,提问作者Michael Ibinola
相关产品推荐
相关产品推荐

