Alex
Alex

Reputation: 530

Git - fatal: unknown error occured while reading the configuration files

Not sure if this is the correct place to post this problem, but:

When I try to do just about anything in my Git bash window, I get this error:

fatal: unknown error occured while reading the configuration files

Git error fatal unknown error occured while reading the configuration files

I tried several re-installs under different configurations and attempted numerous reboots to no help. I was questioning my username on Windows, since it has a dot (.) in it. Could that confuse Git for some reason? And if so: Is there a work-around?

I also cannot seem to locate where my config files are, since the command to find it is broken with the same error message.


I searched my computer for .gitconfig files. I found a total of 4 files:

Here are the content of each file

...\Git\mingw64\etc.gitconfig

[credential]
helper = manager

...\Git\usr\share\vim\vim74\ftplugin.gitconfig

" Vim filetype plugin
" Language: git config file
" Maintainer:   Tim Pope <[email protected]>
" 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\share\vim\vim74\indent.gitconfig

" Vim indent file
" Language: git config file
" Maintainer:   Tim Pope <[email protected]>
" 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\share\vim\vim74\syntax.gitconfig

" Vim syntax file
" Language: git config file
" Maintainer:   Tim Pope <[email protected]>
" 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"

I run Windows 7 x64 Professional. The computer is part of a domain network.

I Googled this problem and gave up when I came to page 11 with nothing useful.

Upvotes: 9

Views: 20181

Answers (10)

Vivek Iyer
Vivek Iyer

Reputation: 364

None of the options provided above worked for me. What finally fixed it was setting the HOME environment variable to point to something reasonable. Once this was done, git started behaving properly again.

Upvotes: 0

chuha.billi
chuha.billi

Reputation: 179

for me the issue was .gitconfig folder/dir in Users// deleting the dir(.gitconfig) resolved the issue and it's working fine now. click on this link to refer the image for solution

Upvotes: 8

gooberwonder
gooberwonder

Reputation: 886

I ran into this same issue with Git installed on a machine that was part of a domain network. I followed the instructions listed in the first section of this post for creating a $HOME environment variable on my machine under my user profile, and it corrected the problem.

The issue was that our group policy set the home directory to be a location on the network. Git for Windows is configured to use the home directory by default for several settings, and some settings change on the network or my machine (who knows what) broke permissions to config files that had been created in this networked location that Git needed in order to function.

Try this:

  1. Run Git Bash as administrator.
  2. Do echo $HOME, and note the directory printed.
  3. Close Git Bash and run it not as administrator.
  4. Do echo $HOME, and compare the directory to the one printed when run as administrator.
  5. If the directories printed in steps (2) and (4) are different, follow the instructions in the linked blog post to set your $HOME environment variable to the directory printed when you ran Git Bash as administrator.

Upvotes: 2

Ali
Ali

Reputation: 8100

I am using Git on Windows and had the same problem, I deleted the .git-credentials and .gitconfig files and restarted Git and everything worked fine.

For me, the files were located in Documents folder in Windows.

You might have to add a few configurations again like user.name and user.email etc.

Upvotes: 0

Jesse Huang
Jesse Huang

Reputation: 3

I had the same error, and my issue was that my .config file in

c:\users\myLogin\.gitconfig

was empty. I added the following:

[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

Are any of your gitconfig files empty?

Upvotes: 0

bora
bora

Reputation: 1

Had the same problem. Running as admin helped, so I have deleted all the .gitconfig files I was able to find on my computer and it helped

Upvotes: 0

Vishnu Sri Vineeth
Vishnu Sri Vineeth

Reputation: 19

Check for C:\users\mylogin.gitconfig if you dont find here go to C:\user\myLogin.git.gitconfig and see if it has Read permission to You, Give full control for you in security .

Upvotes: 0

Alex
Alex

Reputation: 530

Ok. So I found the solution, and it is embarrassingly simple!

All you need to do is run git-bash.exe as administrator.

I went into C:\Program Files\Git and set git-bash.exe to always run as administrator. That way I can still use my right-click shortcut and have it run as administrator automatically.

Right-click the git-bash.exe file and choose properties. Go under the compatibility tab and check the checkbox at the bottom that says "Run this program as administrator". Click OK, and problem should be solved.

Upvotes: 1

VonC
VonC

Reputation: 1328332

That error message was seen in "Where does git config --global get written to?"

The problem was a second .gitconfig in this folder:

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

Minor nitpick, that error message will change with Git 2.9.x/2.10 (Q3 2016)

See commit 3a39f61, commit dc72b50 (10 Jun 2016) by Peter Colberg (``).
(Merged by Junio C Hamano -- gitster -- in commit 9d3d0db, 06 Jul 2016)

config.c: fix misspelt "occurred" in an error message

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

Upvotes: 0

Theophile
Theophile

Reputation: 1

I had the exact same problem and it was even not solved after a complete re-install of git.

To solve this, create an empty .gitconfig file in:

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

I hope it has helped you.

Upvotes: -3

Related Questions