簡體   English   中英

為什么 git 顯示“--merged”/“--no-merged”而不是分支名稱?

[英]Why does git show “--merged” / “--no-merged” instead of branch names?

Git 分支顯示-merged-no-merged而不是分支名稱。

如何禁用此功能並查看實際的分支名稱?

Git 分支

您的屏幕截圖(我已手動重新輸入,因此可能會引入各種錯誤)似乎顯示以下內容:

$ git branch
  german
* master
  newAutosuggest
  release-candidate
  release_v3.1.2
  â<U+0080>-merged
  â<U+0080>-no-merged
  â<U+0080>-merged
  -no-merged

帶有master的行是綠色的(對於當前分支是正常的),帶有<U+0080>的行以反色視頻打印了該部分,表明您的尋呼機已突出顯示它以暗示它是不可打印字符的擴展。

â (Unicode 拉丁小寫字母 A WITH CIRCUMFLEX,U+00E2)字符和擴展的 U+0080 表示您有使用非 ASCII 字符的分支名稱。

名稱â<U+0080>-mergedâ<U+0080>-merged在視覺上看起來相同,我將它們輸入為兩個相同的名稱,但這應該是不可能的。 在我看來,至少一個明顯的連字符-字符實際上是一個破折號 U+2013 字符。 這也可以解釋-no-merged名稱的出現:如果至少前導連字符(可能還有兩個連字符)實際上是短划線字符,而不是連字符,它們將可用作 Git 分支名稱。

刪除這些名稱可能容易或困難,具體取決於您對 Unicode 的熟悉程度以及對生成正確 Unicode 字節序列的工具的訪問權限。 它還可能取決於您的操作系統是否實際使用Unicode。

如果所有其他方法都失敗了,請考慮直接“在 Git 的背后”工作,就像使用.git/refs/目錄和/或單個文件.git/packed-refs中的文件一樣。 如果您手動編輯這些打包參考文件,請務必小心:確保您的編輯器沒有將所有內容都轉換為 UTF-16-LE 編碼(Microsoft 最喜歡的),也沒有插入無意義的字節順序標記。

請注意,go 在 Git 背后的其他程序(直接進入存儲庫並在不詢問或通知 Git 的情況下更改內容)可以創建名稱包含無效連字符的分支。 如果發生這種情況,修復它的方法是再次在 Git 背后的 go 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM