糟糕的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个回答

1

我看不到找到确切错误的方法,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"

1
谢谢。我的命令中有一系列反斜杠,所以最好使用 git config 添加别名。 - igor

0
我在我的Android项目中遇到了同样的问题。所以我只需要在Android Studio中执行以下操作:文件->无效缓存并重启。这帮助了我。

0

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


0

我尝试删除文件.gitconfig,这解决了我的问题。


0

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

然后我重新打开了SourceTree(这是我通常使用的工具),除了远程仓库之外,其他所有东西都还在。


0

我曾经遇到过同样的问题!

简单的解决方案是: 删除你的Flutter SDK并下载最新版本的Flutter SDK。

你可以通过以下链接下载它: https://docs.flutter.dev/get-started/install

当Flutter发布新版本的Flutter SDK,而你正在运行较低版本时,就会出现一些库显示错误的情况。


0
在我的情况下,我使用了一个基本命令来解决.config错误:
rm -rf .git

那么

git-init

它正常工作。


0

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

需要注意的是,当清除配置时,远程跟踪信息将丢失。您可以重新添加远程主机,但这对我来说很繁琐。


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

0

我在更改配置文件中的电子邮件后遇到了同样的问题。我使用 xxxx@gmail.com 注册了 git,然后 git 为我生成了一个类似于 xxxxxx@users.noreply.github.com 的电子邮件。配置文件中的原始电子邮件是 xxxxxx@users.noreply.github.com。将其更改为我注册时使用的电子邮件 xxxx@gmail.com 导致了问题。为了解决这个问题,我登录到我的 git 帐户在线上,访问设置并导航到电子邮件部分,并从此部分找到 GitHub 生成的电子邮件,如下所示:

主要电子邮件地址 因为您启用了电子邮件隐私,xxxx@gmail.com 将用于与帐户相关的通知以及密码重置。xxxx@users.noreply.github.com 将用于基于 Web 的 Git 操作(例如编辑和合并)。

从控制台中,我运行了sudo nano ~/.gitconfig,输入了我的计算机密码,然后将电子邮件地址从xxxx@gmail.com更改回Github电子邮件地址xxxx@users.noreply.github.com。 然后按下(ctr + O)保存,再按下回车键,最后按下(ctr + x)关闭终端。 为了确保它起作用了,我使用git clone https://github.com/xxxxx克隆了该仓库,其中xxxx是该仓库的名称,它起作用了。 :)

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