![我的 Git 儲存庫中的 Zsh 超級慢](https://rvso.com/image/1330216/%E6%88%91%E7%9A%84%20Git%20%E5%84%B2%E5%AD%98%E5%BA%AB%E4%B8%AD%E7%9A%84%20Zsh%20%E8%B6%85%E7%B4%9A%E6%85%A2.png)
我的 Zsh 在我的某個 Git 儲存庫中非常慢。當我用 Google 搜尋「zsh git Slow」時,我得到了一堆關於 Git 的結果自動完成速度很慢,但自動完成不一定是我的問題;它是一切。
我嘗試刪除所有插件,但奇怪的是,當我打開新外殼時,它根本沒有做任何事情。 Zsh 仍然會在我的 Git 儲存庫中執行 Git 操作。
我在上找到了這個片段這一頁:
function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
這使得一切又變得更快了,但它也給了我一個如下所示的提示:
➜ snip git:(master
請注意缺少的右括號。這有點蹩腳。另外,整件事看起來就像是我不該做的駭客攻擊。
還有一個看起來很有希望的 SU 問題,但已接受答案的連結已失效。
如何讓我的 Zsh 在 Git 儲存庫中不慢?
答案1
您可以執行以下命令來完全停用 git status 功能。
git config --global oh-my-zsh.hide-status 1
或將以下行加到您的~/.zshrc
.
DISABLE_UNTRACKED_FILES_DIRTY="true"
答案2
若要追蹤執行緩慢時呼叫的 shell 命令,您可以執行:set -x
或新增到啟動檔案。它將向您顯示所有命令,包括負責自動完成的命令。
如果您認為某些git
命令很慢,您可以定義一些額外的變量,例如:
exports GIT_TRACE=1
若要查看更多範例,請參閱:如何調試 git/git-shell 相關問題?
答案3
我已經zsh-autosuggestions
作為插件刪除了,然後速度更快了。就我而言,它與 無關git
。
答案4
您可以嘗試使用 來確認速度緩慢的原因zprof
。將其添加到您的~/.zshrc
(或同等內容):
zmodload zsh/zprof
然後在每個命令之後運行zprof
以獲取摘要。就我而言,這是一個完全不相關的插件導致了緩慢速度。