Git - fatal:读取配置文件时出现未知错误

时间:2016-06-28 08:05:08

标签: git

不确定这是否是发布此问题的正确位置,但是:

当我尝试在我的Git bash窗口中执行任何操作时,我收到此错误:

fatal: unknown error occured while reading the configuration files

Git error fatal unknown error occured while reading the configuration files

我在不同的配置下尝试了几次重新安装,并尝试了多次重启,没有任何帮助。我在Windows上质疑我的用户名,因为它里面有一个点(。)。由于某些原因,这会让Git感到困惑吗?如果是这样的话:是否有解决办法?

我似乎无法找到我的配置文件的位置,因为找到它的命令被破坏了相同的错误消息。

我在计算机上搜索了.gitconfig个文件。我发现总共有4个文件:

  • C:\Program Files\Git\mingw64\etc\.gitconfig
  • C:\Program Files\Git\usr\share\vim\vim74\ftplugin\.gitconfig
  • C:\Program Files\Git\usr\share\vim\vim74\indent\.gitconfig
  • C:\Program Files\Git\usr\share\vim\vim74\syntax\.gitconfig

以下是每个文件的内容

... \ GIT中\ mingw64 \ etc.gitconfig

[credential]
helper = manager

... \ GIT中的\ usr \共享\ VIM \ vim74 \ ftplugin.gitconfig

" Vim filetype plugin
" Language: git config file
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Last Change:  2009 Dec 24

" Only do this when not done yet for this buffer
if (exists("b:did_ftplugin"))
  finish
endif
let b:did_ftplugin = 1

setlocal formatoptions-=t formatoptions+=croql
setlocal comments=:#,:; commentstring=;\ %s

let b:undo_ftplugin = "setl fo< com< cms<"

... \ GIT中的\ usr \共享\ VIM \ vim74 \ indent.gitconfig

" Vim indent file
" Language: git config file
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Last Change:  2013 May 30

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetGitconfigIndent()
setlocal indentkeys=o,O,*<Return>,0[,],0;,0#,=,!^F

let b:undo_indent = 'setl ai< inde< indk<'

" Only define the function once.
if exists("*GetGitconfigIndent")
  finish
endif

function! GetGitconfigIndent()
  let line  = getline(prevnonblank(v:lnum-1))
  let cline = getline(v:lnum)
  if line =~  '\\\@<!\%(\\\\\)*\\$'
    " odd number of slashes, in a line continuation
    return 2 * &sw
  elseif cline =~ '^\s*\['
    return 0
  elseif cline =~ '^\s*\a'
    return &sw
  elseif cline == ''       && line =~ '^\['
    return &sw
  else
    return -1
  endif
endfunction

GIT中的\ usr \共享\ VIM \ vim74 \ syntax.gitconfig

" Vim syntax file
" Language: git config file
" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
" Filenames:    gitconfig, .gitconfig, *.git/config
" Last Change:  2010 May 21

if exists("b:current_syntax")
  finish
endif

setlocal iskeyword+=-
setlocal iskeyword-=_
syn case ignore
syn sync minlines=10

syn match   gitconfigComment    "[#;].*"
syn match   gitconfigSection    "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
syn match   gitconfigSection    '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
syn match   gitconfigVariable    "\%(^\s*\)\@<=\a\k*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
syn region  gitconfigAssignment  matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend
syn keyword gitconfigBoolean true false yes no contained
syn match   gitconfigNumber  "\d\+" contained
syn region  gitconfigString  matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError
syn match   gitconfigError  +\\.+    contained
syn match   gitconfigEscape +\\[\\"ntb]+ contained
syn match   gitconfigEscape +\\$+    contained

hi def link gitconfigComment        Comment
hi def link gitconfigSection        Keyword
hi def link gitconfigVariable       Identifier
hi def link gitconfigBoolean        Boolean
hi def link gitconfigNumber     Number
hi def link gitconfigString     String
hi def link gitconfigDelim      Delimiter
hi def link gitconfigEscape     Delimiter
hi def link gitconfigError      Error

let b:current_syntax = "gitconfig"

我运行Windows 7 x64 Professional。该计算机是域网络的一部分。

我用Google搜索了这个问题,当我第11页没有任何用处时放弃了。

10 个答案:

答案 0 :(得分:3)

对我来说,问题是.gitconfig文件夹/ dir在用户//删除目录(.gitconfig)解决了问题,它现在正常工作。 click on this link to refer the image for solution

答案 1 :(得分:1)

我遇到了同样的问题,在一台属于域网络的机器上安装了Git。我按照this post第一部分中列出的说明在我的用户个人资料下在我的计算机上创建了$HOME环境变量,并更正了问题。

问题是我们的组策略将主目录设置为网络上的位置。 Git for Windows配置为默认使用主目录进行多项设置,并且一些设置在网络或我的机器上更改(谁知道什么)破坏了在Git所需的网络位置中创建的配置文件的权限,以便功能

试试这个:

  1. 以管理员身份运行Git Bash。
  2. 执行echo $HOME,并记下打印的目录。
  3. 关闭Git Bash并以管理员身份而不是运行它。
  4. 执行echo $HOME,并将目录与以管理员身份运行时打印的目录进行比较。
  5. 如果步骤(2)和(4)中打印的目录不同,请按照链接博客文章中的说明将$HOME环境变量设置为以管理员身份运行Git Bash时打印的目录。 / LI>

答案 2 :(得分:0)

该错误讯息见于“Where does git config --global get written to?

  

问题是此文件夹中的第二个.gitconfig

C:\Users\myUser.config\git\config

次要挑剔,该错误信息将随Git 2.9.x / 2.10(2016年第3季度)而改变

commit 3a39f61commit dc72b50Peter Colberg (``)(2016年6月10日) (由Junio C Hamano -- gitster --commit 9d3d0db合并,2016年7月6日)

  

config.c:在错误消息中修复拼写错误

-       die(_("unknown error occured while reading the configuration files"));
+       die(_("unknown error occurred while reading the configuration files"));
                                 ^^

答案 3 :(得分:0)

确定。所以我找到了解决方案,这很简单!

您需要做的只是以管理员身份运行git-bash.exe

我进入C:\Program Files\Git并设置git-bash.exe以始终以管理员身份运行。这样我仍然可以使用我的右键单击快捷方式,让它自动以管理员身份运行。

右键单击git-bash.exe文件,然后选择属性。转到兼容性选项卡下,然后选中底部的复选框,其中显示&#34;以管理员身份运行此程序&#34;。单击“确定”,问题应该解决。

答案 4 :(得分:0)

检查C:\ users \ mylogin.gitconfig如果你在这里找不到,请转到C:\ user \ myLogin.git.gitconfig并查看它是否具有读取权限,在安全性方面完全控制你。

答案 5 :(得分:0)

有同样的问题。以管理员身份运行帮助,所以我删除了我能够在我的计算机上找到的所有.gitconfig文件并帮助了

答案 6 :(得分:0)

我遇到了同样的错误,我的问题是

中的.config文件
  

c:\ users \ myLogin \ .gitconfig

是空的。我添加了以下内容:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[remote "origin"]
    url = <url>
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

你的任何gitconfig文件都是空的吗?

答案 7 :(得分:0)

我在Windows上使用Git并遇到同样的问题,我删除了.git-credentials和.gitconfig文件并重新启动了Git,一切正常。

对我来说,这些文件位于Windows的Documents文件夹中。

您可能需要再次添加一些配置,例如user.name和user.email等。

答案 8 :(得分:0)

上面提供的选项都不适合我。最后修复它的是将HOME环境变量设置为指向合理的东西。完成后,git再次开始正常运行。

答案 9 :(得分:-3)

我有完全相同的问题,在完全重新安装git后甚至没有解决。

要解决此问题,请在以下位置创建一个空的.gitconfig文件:

C:\Users\<username>\AppData\Local\

我希望它能帮助你。