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

25

对于碰到这个问题的人(我认为是因为在Windows中git初始化过程中崩溃了),如果你有最近备份的git仓库.git/文件夹中配置文件的副本,可以通过用它替换现有的配置文件来修复它(自从拷贝后添加的任何引用显然都需要重新添加)- 虽然不是最理想的解决方法,但比失去所有提交要好。


1
非常准确,Woody。我检查了一下,我的.gitconfig文件是空的。从备份中恢复了该文件,现在一切都很好。 - JSWilson
但是,在看到这个答案之前,我没有备份那个配置文件。有什么适合新手的替代方案吗?我正在寻找一个解决和我的问题相同的方案。:-\ - David Dimalanta
如果我们没有文件备份怎么办? - Narendra Jaggi
20
我没有在.git文件夹下找到备份文件。但是,我成功地通过直接移除文件"config"(将其重命名为config.bak以防需要还原)来解决了问题。 - Zhaoxing Lu
3
@ZhaoxingLu - 我也遇到了同样的问题,我将 .gitconfig 文件重命名为其他名称。 - Windo
我也重命名了文件,它起作用了。我什么都没丢失 :-) - Zaheer

23

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

如果你想修改文件($ nano ~/.gitconfig),你应该将以下内容添加到你的文件中:

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

17

我的问题与我的全局配置有关,Git 将其解析为 $HOME/.gitconfig,但是根本原因并不受位置影响。

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

我有一个习惯,将我的主目录中的配置文件用符号链接链接到一个嵌套的Git仓库中,以在多个开发环境中维护这些文件。结果发现,在Windows下运行的Git无法理解Cygwin对符号链接的实现。

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


13

最好执行这两个命令

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

在终端输入此命令,随后会更新配置文件。


你能解释一下为什么它更好吗? - user44484
执行上述命令时要小心,因为您正在更改所有git存储库的user.name和user.password。虽然它肯定会在MacOS的HOME目录(〜)中创建.gitconfig。 - realPK
一旦出现上述错误,如果我们运行以上命令,就不会成功。但是打开 .gitconfig 文件,删除现有的行并尝试在终端中运行以上命令,将解决这个问题。 - maniempire
6
当我尝试这样做时,我得到了相同的错误$ git config --global user.name "JuanPablo" fatal: bad config line 1 in file C:/cygwin/home/pablo/.gitconfig - JuanPablo
只有在我从c:/Program Files/Git/etc/中删除了原始的gitconfig文件后,这才对我起作用。 - borizzzzz

10

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

我通过创建一个新的仓库(在一个单独的文件夹中)并使用git init命令,然后将.git/config复制过去来解决了这个问题。

之后远程仓库丢失了,但是手动重新添加后一切正常。


我曾经遇到过类似的问题,但我的情况是文件底部有一行全是 NULL 字符。使用记事本删除该行解决了问题。 - Augusto Barreto

8

我也遇到了同样的问题,通过以下步骤解决了它。

  1. 从c:\users[用户名]中删除.gitconfig文件(如果不起作用则创建备份,但不需要)
  2. 重新启动SourceTree并打开文件->打开->[您的存储库]。

这就是我所做的,它起作用了。我的.gitconfig文件是空的,所以我不担心删除它(而且我没有备份)。 - bcr

3

在初始安装后,我遇到了同样的问题。

"fatal: bad config line 1 in file C:\ProgramData/Git/config"

我以管理员身份打开了记事本,导航到错误消息中列出的文件。该文件也是空白的,但有空格/制表符,因此我将它们删除并保存了文件。现在它可以正常工作了。


3
我有相同的症状。我在Windows上使用Cygwin,当我启动一个进程,例如 "git clone" 时,错误消息是 "fatal: bad config line 1 in c:/cygwin/home/myhome/.getconfig"。
问题显然在文件名上,它是Windows C盘和Cygwin / Unix路径的混合。;-)令人困惑的是 "line 1" 的信息,而应该说 "找不到配置文件"。
我不知道这是如何产生的,因为我既没有设置%HOMEPATH%也没有设置$HOME。

我也遇到了同样的问题,但是似乎找不到任何解决方法。问题似乎被加剧了,因为我在我的D:分区上创建了git仓库,而%HOMEPATH%位于C:分区上,而git似乎不喜欢这种情况...(更不用说那些不太有帮助的错误信息了...) - Sorin Postelnicu
当然,正如我所怀疑的那样,在C:驱动器上创建存储库之后,我不再遇到这个错误了... - Sorin Postelnicu

3
对我来说问题在于我使用了 Mac TextEdit 应用程序编辑了文件,默认情况下,它会将“标准”双引号转换为“角度”双引号。
在 .git/config 中,正确使用的是双引号:“(UNICODE U+0022 引号)。
在我的情况下,我修复了以下行:
WRONG:[remote “origin”]
CORRECT:[remote "origin"]
PS:如果您希望 Mac TextEdit 不会“聪明地”更改双引号,请转到“首选项”并取消选择“智能引号”。

1
在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

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