坏git配置文件.git / config

时间:2012-03-01 00:52:14

标签: git

在我的git存储库中,每当我执行git statusgit log等任何git命令时,都会收到错误:
fatal: bad config file line 1 in .git/config
如何重建该文件或新文件?

25 个答案:

答案 0 :(得分:19)

对于那些遇到这个问题的人(我相信这是由于崩溃git mid init?)在windows中,如果你最近从你的git repo的.git /文件夹备份配置文件,你可以通过更换与它一起存在(任何ref都添加,因为副本显然需要重新添加) - 完全不理想但比丢失所有提交更好。

答案 1 :(得分:17)

我知道在一些教程中他们要求你把下面的代码,但他们实际上意味着他们是你在终端输入的命令: git config --global user.name“NewUser” git config --global user.email newuser@example.com

如果你正在修改文件($ sudo nano~ / .gitconfig),你可以把它放到你的文件中:

[user]
name = WilliamQLiu
email = WilliamQLiu@myemailaddress.com

答案 2 :(得分:13)

我的问题与Git解析为$HOME/.gitconfig的全局配置有关,但其根本原因恰好与位置无关。

> git config --global -l
fatal: bad config file line 1 in C:\Users\<user>/.gitconfig

我习惯将主目录中的配置文件符号链接到嵌套的Git存储库,以便在我的多个开发环境中维护文件。事实证明,Cygwin对符号链接的实现对于在Windows下运行的Git没有多大意义。

我将符号链接更改为硬链接,不知怎的,这可以正常工作。我可以通过在Windows中打开.gitconfig链接来验证这一点;当使用符号链接时,文件包含二进制数据,但硬链接文件包含预期的内容。

答案 3 :(得分:9)

最好执行两个命令

git config --global user.name "NewUser"
git config --global user.email newuser@example.com

在终端。这反过来将更新配置文件。

答案 4 :(得分:8)

我遇到了同样的问题(Notepad ++在文件中只显示NULL个字符。)

我设法通过使用git init创建一个新的仓库(在一个单独的文件夹中)并从那里复制.git/config来解决它。

此后遥控器丢失了,但手动读取后一切正常。

答案 5 :(得分:6)

我也有同样的问题,设法通过以下步骤修复它。

  1. 已删除.gitconfig文件,c:\ users [用户名](已创建的备份无效,但不需要。)
  2. 重新启动源树和文件 - &gt;打开 - &gt; [您的存储库]。

答案 6 :(得分:2)

我得到同样的症状。我在Windows上使用Cygwin,当我启动进程“git clone”时,错误消息是“致命的:c:/cygwin/home/myhome/.getconfig中的错误配置行1”

问题显然在于文件名,它是windows c:和cygwin / unix路径之间的混合。 ;-)什么是误导性的是“第1行”消息,而它应该说“找不到配置文件”。

我不知道这是如何产生的,因为我既没有%HOMEPATH%也没有$ HOME set

答案 7 :(得分:2)

初次安装后我遇到了同样的问题。

“致命:文件C中的错误配置行1:\ ProgramData / Git / config”

我以管理员身份打开记事本,导航到错误消息中列出的文件。该文件也是空白但它有空格/标签,所以我删除它们保存文件。现在它可以工作

答案 8 :(得分:1)

对我来说,问题是我在Mac TextEdit应用程序中编辑了该文件,默认情况下,该文件设置为将“标准”双引号转换为“角度”双引号。

.git/config中,正确双引号是:“(UNICODE U + 0022引号)

对于我来说,我修复了以下行:

错误:[remote “origin”]

正确:[remote "origin"]

PS:如果您希望Mac TextEdit不“智能地”更改双引号,请转到“首选项”,然后取消选中“智能引号”。

答案 9 :(得分:0)

首先,文件损坏可能是文件系统问题的征兆(就我而言),因此为防止进一步丢失数据,请启动到救援模式,并在挂载分区之前运行磁盘检查实用程序(例如fsck -nxfs_repair -n)。

但是如果您使用的是 Jenkins,那么找到损坏的 .git/config 文件可能并不容易。它在本地存储至少两个副本:

  • 在 Jenkins 克隆到 <JENKINS_HOME>/<remote_repo_name> 中的远程存储库的本地副本中,并且
  • 缓存在 git-* 中的多个 <JENKINS_HOME>/caches 文件夹之一中。

答案 10 :(得分:0)

我在push上遇到类似的问题,可以使用以下方法修复它:

>>> True == True in (True, False)
True

>>> True == False in (True, False)
False

>>> 2 == 2 in (2, 3)
True

>>> 1 == 1 in (2, 3)
False

>>> 1 != 2 in (2, 3)
True

>>> 2 != 1 in (2, 3)
False

>>> 2 in (2, 3) in [True, False]
False

答案 11 :(得分:0)

我在Android项目中遇到了同样的问题。所以我只是在Android Studio中做了以下操作:File-> Invalidate Cache and Restart。它帮助了我。

答案 12 :(得分:0)

我看不到找到确切错误的方法,git仅显示行号,因此,我发布了故障排除步骤,以防万一。

我在尝试通过文本编辑器(emacs)向我的~/.gitconfig全局文件添加别名时遇到此问题。我通过使用以下命令来编辑配置来发现我的问题:

git config --global alias.<my_alias> 'my new command'

我正在创建一个别名以仅显示我所在的分支:

$ git config --global alias.thisbranch '!thisbranch() { git branch | grep \* | cut -d " " -f2; }; thisbranch'

问题是*字符需要在\\文件中具有~/.gitconfig两次转义,因为\的转义字符需要被转义(命令是现在嵌套在字符串中),但我只使用了单个转义字符\

所以我的git配置现在看起来像这样:

[alias]
        ...
        ...
        thisbranch = "!thisbranch() { git branch | grep \\* | cut -d \" \" -f2; }; thisbranch"

答案 13 :(得分:0)

如果您手动编辑 .gitconfig 文件,则可能会发生这种情况。 在C:\ Users \ .gitconfig中(您可以使用Notepad ++对其进行编辑) 打开并检查这些行。

 [user]
        name = <your username>
        email = <your email>
    [core] 
        editor = <editor location>

您可以更改这些行。如果将错误的行添加到编辑器变量中,则可能导致错误。只需删除此行即可。但请务必备份。或者,您可以检查正确的代码/路径以与您的文本编辑器连接,然后将其替换为新的工作代码/路径。

然后保存它。 (这对android studio用户可能会更有帮助)

答案 14 :(得分:0)

更改了配置文件中的电子邮件后,我也遇到了同样的问题。我使用 RewriteEngine On # remove www from url RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [L,R=301] # redirect to https:// RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^localhost RewriteCond %{HTTP_HOST} !^127.0.0.1 RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 注册了git,然后git为我生成了一封电子邮件,如xxxx@gmail.com。配置文件上的原始电子邮件为xxxxxx@users.noreply.github.com。将其更改为我与xxxxxx@users.noreply.github.com签署的电子邮件导致了此问题。为了解决这个问题,我在线登录了git帐户,访问“设置”,然后导航到“电子邮件”部分,并找到了该部分的GitHub生成的电子邮件,内容如下:

xxxx@gmail.com

我从控制台运行Primary email address Because you have email privacy enabled, xxxxx@gmail.com will be used for account-related notifications as well as password resets. xxxx@users.noreply.github.com will be used for web-based Git operations (e.g. edits and merges). 输入我的计算机密码,然后将电子邮件从sudo nano ~/.gitconfig更改回Github电子邮件xxxx@gmail.com。 然后按(ctr + O)保存,然后按Enter,然后按(ctr + x)关闭终端。 为确保它能正常工作,我再次使用xxxx@users.noreply.github.com克隆了仓库,其中xxxx是仓库并且可以正常工作。 :)

答案 15 :(得分:0)

在Jenkins上,检查git-hash-string的错误消息。 只需删除/ var / jenkins / home / caches / git-hash-string git-hash-string @ tmp。 您可能需要root权限才能从git-hash-string / .git文件夹中删除所有文件。

当您重新启动构建时,一切都会再次正常运行。

答案 16 :(得分:0)

搜索配置文件并删除其中所有对我有用的空格。

答案 17 :(得分:0)

如果您的.gitconfig文件似乎很好(具有正确的数据),则可以再次将相同的数据复制并粘贴到该文件中,以便修改文件的编辑日期。 这对我来说似乎很好。 并且为了避免将来出现此问题,请备份相同的文件并另存为“ backup.gitconfig_bak”或您喜欢的任何名称。

答案 18 :(得分:0)

Windows对我有用的只是从另一台机器复制C:\ProgramData\Git\config中的配置文件。它的新内容变成了下面显示的内容,它取代了以前的乱码:

[core]
    symlinks = false
    autocrlf = true
    fscache = true
[color]
    diff = auto
    status = auto
    branch = auto
    interactive = true
[help]
    format = html
[rebase]
    autosquash = true

答案 19 :(得分:0)

对于Cygwin,它在.gitconfig文件中搞砸了我的用户名。 我的用户名是以域\用户名创建的,显然反斜杠正在逃避&#39; s。

所以,如果你输入git status之后就得到了这个:

fatal: bad config line 2 in file /cygdrive/c/Users/yourname/.gitconfig

然后这样做:

  1. vi /cygdrive/c/Users/yourname/.gitconfig
  2. 编辑变量名称以显示正常名称(即唐纳德特朗普)
  3. 编辑变量电子邮件以显示有效的电子邮件值(即dtrump@whouse.gov)
  4. 编辑变量用户名以显示没有反斜杠的简单用户名(即dtrump)
  5. 所以上面的建议很有用......在创建git存储库(git init)之前,立即设置这些变量:

    git config --global user.name "NewUser"
    git config --global user.email newuser@example.com
    

    因为默认值很可能不正确。

答案 20 :(得分:0)

他们能做的最好的事情就是将所有文件复制到除文件夹.git之外的其他路由中,然后复制上次设置上传的提交并粘贴移动到其他路由的文件,以便覆盖它们并允许新提交。

答案 21 :(得分:0)

对我来说,我打开了配置文件并删除了其中的所有内容。我备份了存储库并重新克隆了存储库。然后,我从备份的存储库中手动应用了我的更改。

我应该注意,清除配置时,远程跟踪信息将丢失。您可以重新添加远程主机,但对我来说非常繁琐。

答案 22 :(得分:0)

我在我的存储库文件夹的根目录中删除了.git/config,因为这是错误消息中给出的错误的配置文件名。

然后我重新打开SourceTree(这是我通常使用的),除了遥控器之外的所有东西都在那里。

答案 23 :(得分:0)

我在Windows 8.1中使用GitHub for Windows客户端2.14收到此错误。*

在我当地克隆的git存储库都不可访问。分支名称,更改的文件,历史记录等不可见。

打开Git Shell并尝试使用git status检查存储库状态,这是一条错误消息 fatal: bad config file ... at C:\Users\MyUser\AppData\Local\GitHub\PortableGit_xxxxx06exx6fdf878271f7fe636a147ff37326ad\etc\gitconfig

所以我在这个路径上删除了gitconfig文件并关闭了Git shell和Git客户端。再次启动Git客户端,存储库恢复正常。

答案 24 :(得分:-2)

我也遇到了同样的问题,所以我去了文件路径和c:\ User \ .gitconfig并删除了其中的所有内容并保存了。 现在正在工作 $ git-版本 git版本2.22.0.windows.1