Git报错fatal:unknown repository extensions worktreeconfig解决方法
问题根因
报错核心是Git版本跨度过大导致的配置不兼容:extensions.worktreeconfig是Git 2.20版本才正式引入的仓库扩展标识,Ubuntu 18.04系统源自带的Git 2.17.1发布时间早于该特性上线,完全无法识别这个配置项,只要仓库配置中存在该字段就会直接抛出fatal级别的报错,和你是否实际使用过worktree功能没有必然联系——高版本Git在部分常规操作场景下会自动给仓库打上这个扩展标记,不需要用户主动开启worktree。
之前执行git config extensions.worktreeconfig=false报无效key的原因也很简单:2.17版本的Git根本不承认extensions.worktreeconfig是合法配置键,自然不会执行修改操作。删除.git/config.worktree无效是因为触发报错的配置项根本不存在于这个文件中,而是写在.git/config的核心配置段里。
解决方法
根据实际需求二选一即可:
- 方案1:升级本地Git版本(最稳妥,无后续隐患)
将Ubuntu 18.04上的Git升级到2.20及以上版本,升级完成后回到仓库目录执行git status即可正常使用,不会破坏仓库原有提交记录、配置和工作区内容。 - 方案2:手动移除不兼容配置(不想升级Git时使用)
由于老版本git config命令无法识别该配置键,直接编辑配置文件修改即可:- 打开仓库路径下的
.git/config文件,找到[extensions]段落中的worktreeconfig = true行,直接删除整行后保存退出。 - 确认
.git目录下无残留的config.worktree文件(之前已经删除过则无需重复操作) - 回到仓库目录重新执行
git status,报错即可消除。
- 打开仓库路径下的
注意:手动删除该配置项后,如果后续用高版本Git操作该仓库,程序可能会自动把这个配置项重新加回配置文件,届时重复删除操作即可,不会损坏仓库数据。
内容的提问来源于stack exchange,提问作者kalou.net
相关产品推荐
相关产品推荐

