我只有一個分支main,但是當我執行git branch命令時,大約需要 30 秒才能完成。其他類似的命令git status沒有這個性能問題。我可以在這里檢查哪些內容?
Git 版本是在 Windows 10 上運行的 2.36.0。
更新:
- 打開 Git Bash 也很慢(大約 20 秒)。我嘗試了解決方案https://stackoverflow.com/a/47542488/1160753。Git Bash 在該更改之后迅速打開,但打開 Git Bash 的后續操作又需要大約 20 秒。
- 在“以管理員身份運行”下執行 Git Bash 時,
git branch很快就完成了。但這不是每一次。有時相同的命令需要 30 秒才能完成(這是沒有任何額外的分支)
uj5u.com熱心網友回復:
Tl;博士
在 Windows 上,當 PC 在域中時,請確保域控制器可訪問。
細節
與 Git for Windows 一起分發的 shell 和命令列工具源自MSYS2 專案,該專案基于 Cygwin 庫的變體。作為程式啟動例程的一部分,該庫會進行多次名稱查找。當系統在域中注冊時,此查找將轉到域控制器。在無法訪問域控制器的情況下,查找會等待超時。這會導致延遲。
查找的結果由 Windows 快取。因此,在短時間內,后續啟動不必等待超時。但最終快取到期,下一次程式呼叫必須再次等待。
Git 程式不git.exe基于 Cygwin 庫,不需要名稱查找。它可以毫無延遲地運行。然而,許多 Git 命令會產生一個尋呼機,通常是,它確實會受到延遲的影響;因此,看起來 Git 本身會被延遲。(沒關系;無論哪種方式,用戶體驗都很糟糕。)less
除此之外,還有許多其他 Git 運行命令列工具的情況:鉤子、textconv 過濾器、ssh 等。所有這些都可能受到延遲的影響。
編輯:我目前正在測驗以下更改。除非您確切知道安全隱患是什么,否則不要對您的系統進行此更改。
我使用mkpasswdandmkgroup在本地快取當前域資訊:
mkpasswd >> /etc/passwd
mkgroup >> /etc/group
然后我從檔案中洗掉了重復項。(但/etc/group在這些命令之前并不存在。)
這個想法取自Cygwin FAQ。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/485403.html
下一篇:svn2git遷移-標簽未被復制
