每當我在命令窗口中工作時,出現錯誤:工作線上方出現「bash:__gitdir:command not found」(換句話說,右側在任何命令之後,在它提示新的一個之前)。「bash:__gitdir:命令未找到」終端中的錯誤
有什麼想法來提出這個問題?
每當我在命令窗口中工作時,出現錯誤:工作線上方出現「bash:__gitdir:command not found」(換句話說,右側在任何命令之後,在它提示新的一個之前)。「bash:__gitdir:命令未找到」終端中的錯誤
有什麼想法來提出這個問題?
你可能在你的.bashrc
文件中有調用該命令的東西。
嘗試在其搜索__gitdir:
$ grep __gitdir ~/.bashrc
或許張貼的內容,而且它可能會更容易幫助。
__gitdir
是由git-completion.bash
腳本提供的一項功能,可讓bash在鍵入git
命令時自動完成。您在.bashrc
或其他資料/登錄腳本中是否使用__gitdir
git-completion.bash
?
可以通過函數__git_ps1
啓用花哨的git提示符,該函數可以嵌入PS1
並在每次打印提示時調用。它是在定義一個特定的,但可能不同於定義__gitdir
的文件時定義的。該__git_ps1
(它調用__gitdir
)可能是也許/etc/bash_completion.d/git-prompt
或/usr/share/git-core/contrib/completion/git-prompt.sh
或/etc/bash_completion.d/git
(等)...
但如果__git_ps1
最終得到確定,但__gitdir
沒有,那麼你會得到這個錯誤(您的每一次提示被打印)。例如,如果在/etc/*
中定義了__gitdir
,但在/usr/share/*
中發現了__git_ps1
,那麼在chroot env中,最終可能會定義__git_ps1
,但不會定義。
要「安靜」的錯誤信息,或者刪除看中git的提示,或者只是把它定義:__gitdir() { :; }
這不正是解決原來的問題方面,但可能會爲新的Ubuntu用戶從舊的遷移是有用的版本...
我最近升級了一箇舊的Ubuntu 12.04機器到較新版本的Ubuntu,並且我開始看到有關__git_dir
錯誤的錯誤,這是因爲我的PS1
設置(如其他答案所解釋的)。爲了理解爲什麼這個shell函數沒有更多的定義,我想我的.bashrc
沒有與最新的Ubuntu約定保持同步。
我的老.bashrc
這是基於最初由舊的Ubuntu系統提供一個有類似這樣:通過新的Ubuntu系統中創建
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
而.bashrc
文件首次嘗試使用/usr/share/bash-completion/bash_completion
:
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
當我用新的替換舊的bash完成採購時,我定義了__git_dir
,並且從此以後很高興。
是的,我們在.bashrc文件中調用它。謝謝! –
@JoshJohnson不客氣,很高興你解決了它! – elias