簡體   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