繁体   English   中英

错误的 git 配置文件 .git/config

[英]Bad git config file .git/config

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

对于那些在 Windows 中遇到此问题的人(我认为这是由于 git mid init 崩溃?),如果您最近从 git repo 的 .git/ 文件夹中备份了配置文件,则可以通过用它替换现有文件来修复它(添加任何引用,因为副本显然需要重新添加) - 一点也不理想,但比丢失所有提交要好。

我知道在某些教程中,他们要求您输入以下代码,但实际上它们是您在终端中键入的命令: git config --global user.name "NewUser" git config --global user。电子邮件 newuser@example.com

如果您正在修改文件( $ nano ~/.gitconfig ),您可以将其放入您的文件中:

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

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

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

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

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

执行这两个命令比较好

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

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

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

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

之后遥控器丢失了,但在手动阅读它们后一切正常。

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

  1. 从 c:\\users[username] 中删除 .gitconfig 文件(创建的备份柜面不起作用,但不需要。)
  2. 重新启动源树和 File->Open->[your repository]。

我得到同样的症状。 我在 Windows 上使用 Cygwin,当我启动进程“git clone”时,例如错误消息是“fatal: bad config line 1 in c:/cygwin/home/myhome/.getconfig”

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

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

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

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

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

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

.git/config正确的双引号是:" (UNICODE U+0022 QUOTATION MARK)

就我而言,我修复了以下行:

错误: [remote “origin”]

正确: [remote "origin"]

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

我在 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 客户端,仓库恢复正常。

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

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

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

需要注意的是,清除配置后,远程跟踪信息将丢失。 您可以重新添加远程主机,但事实证明对我来说很乏味。

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

对于 Cygwin,它在.gitconfig文件中弄乱了我的用户名。 我的用户名被创建为域\\用户名,显然反斜杠正在转义“s”。

所以,如果在你输入git status你得到这个:

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

然后这样做:

  1. vi /cygdrive/c/Users/yourname/.gitconfig
  2. 编辑变量名称以显示正常名称(即唐纳德特朗普)
  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

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

Windows上对我C:\\ProgramData\\Git\\config只是从另一台机器复制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

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

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

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

当您重新启动构建时,一切正常。

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

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 (eg edits and merges).

从控制台,我运行sudo nano ~/.gitconfig输入我的计算机密码,然后将电子邮件从xxxx@gmail.com更改回 Github 电子邮件xxxx@users.noreply.github.com 然后按 (ctr + O) 保存,然后按 Enter,然后按 (ctr + x) 关闭终端。 为了确保它有效,我再次使用git clone https://github.com/xxxxx克隆了 repo,其中 xxxx 是 repo 并且它有效。 :)

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

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

你可以改变那些行。 如果向编辑器变量添加错误的行,则可能会导致错误。 只需删除此行即可。 但一定要恢复它。 或者您可以检查正确的代码/路径以连接到您的文本编辑器并将其替换为新的工作代码/路径。

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

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

我的 Android 项目也遇到了同样的问题。 所以我只是在 Android Studio 中执行了以下操作:文件 -> 使缓存无效并重新启动。 它帮助了我。

我有类似的推送问题,我可以使用以下方法修复它:

git config --global push.default matching

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

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

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

对于我来说是删除文件 .gitconfig 并且它解决了

我从我的目录中删除 [.git] 并使用 [git init] 再次重新初始化,一切都对我有用

我面临同样的问题!

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

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

当 Flutter 发布新版本的 Flutter SDK 但您运行的是较低版本时,会发生这种情况,因此某些库会显示错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM