糟糕的git配置文件.git/config。

52

在我的git代码库中,每当我执行像git statusgit log这样的git命令时,都会出现以下错误:
fatal: bad config file line 1 in .git/config
我该如何重建该文件或创建一个新文件?


1
请问您能否发布文件的内容? - iltempo
根据记事本,它是空的。 - Spencer
您的代码库中是否有任何提交记录?如果没有,请删除.git目录并重新初始化一个空的Git仓库,使用git init命令。 - iltempo
有一些提交,最后我从Github重新克隆了代码,并将更改复制到新目录中。 - Spencer
1
我认为你可以直接进入.git文件夹,使用任何编辑器编辑并保存配置文件。当我尝试在命令行上编辑文件时,我遇到了相同的情况。致命错误:.git/config中第1行的配置文件有误(这个问题可能是你忘记了'['括号)。 - Amit kumar
从 C:\ProgramData/Git/config 中删除空格...它会正常工作。 - Akhilesh Sinha
31个回答

0
在 Jenkins 上,检查 git-hash-string 的错误消息。只需删除 /var/jenkins/home/caches/git-hash-string git-hash-string@tmp 文件夹即可。您可能需要 root 权限才能删除 git-hash-string/.git 文件夹中的所有文件。
当您重新启动构建时,一切都会再次正常工作。

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客户端,存储库恢复正常。


0

我在push方面也遇到了类似的问题,但我通过以下方式解决了它:

git config --global push.default matching

0

首先,文件损坏可能是文件系统问题的症状(在我的情况下是这样),因此为了防止进一步的数据丢失,请进入救援模式,并在挂载分区之前在其上运行磁盘检查实用程序(例如fsck -nxfs_repair -n)。

但是,如果您正在使用Jenkins,则很难找到已损坏的.git/config文件。它存储在至少两个副本中:

  • 在Jenkins克隆到<JENKINS_HOME>/<remote_repo_name>的远程repo的本地副本中;以及
  • 缓存在<JENKINS_HOME>/caches中的许多git-*文件夹之一中。

0
我在我的git仓库中尝试做任何操作时都遇到了同样的错误,它甚至无法识别仓库,输出如下:"bad config line 1 in file .git/config"。而我的配置文件中有空格和制表符,我只是将它们全部删除后,一切就正常工作了。

0

首先删除配置文件中的所有内容,然后保存并退出,在新的终端中输入以下命令:

git config --global user.name "用户名"

git config --global user.email "邮箱地址"

完成上述步骤后,查看配置文件,您会发现问题已经解决了。


0
他们能做的最好的事情就是将所有文件复制到另一个路径,除了.git文件夹,然后克隆最后成功上传的提交并粘贴移动到另一个路径的文件,以便覆盖并允许新的提交。

0
对于Cygwin,它在.gitconfig文件中搞乱了我的用户名。 我的用户名被创建为domain\username,显然反斜杠正在转义's'。
因此,如果在输入git status后您看到这个:
fatal: bad config line 2 in file /cygdrive/c/Users/yourname/.gitconfig

然后执行以下操作:

  1. vi /cygdrive/c/Users/yourname/.gitconfig
  2. 将变量name编辑为正常名称(例如Donald Trump)
  3. 将变量email编辑为有效的电子邮件值(例如dtrump@whouse.gov)
  4. 将变量username编辑为没有反斜杠的简单用户名(例如dtrump)

因此,上面的建议很有用...在创建git存储库之前(git init),立即设置这些变量:

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

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


0

我从我的目录中删除了 [.git],然后使用 [git init] 重新初始化,现在一切都正常了。


0
这可能发生在您手动编辑.gitconfig文件时。 在C:\ Users \ .gitconfig中(您可以使用Notepad ++进行编辑) 打开它并检查这些行。
 [user]
        name = <your username>
        email = <your email>
    [core] 
        editor = <editor location>

您可以更改这些行。如果您将错误的行添加到编辑器变量中,可能会导致错误。您可以简单地删除此行。但请确保备份它。或者,您可以检查正确的代码/路径以连接到您的文本编辑器,并用新的工作代码/路径替换它。

然后保存它。(这对于Android Studio用户来说可能更有帮助)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接