我目前爲bash(https://github.com/magicmonty/bash-git-prompt)維護一個git-prompt項目,我剛剛從一個與Docker合作的人那裏得到一個bug報告(https://github.com/magicmonty/bash-git-prompt/issues/97),他告訴我,每次他使用提示時,緩存都會失效,因爲.git
目錄不斷被觸動。任何人都可以解釋,爲什麼「git狀態」觸及.git目錄?
我看過這個,發現它是命令git status
,它涉及.git
目錄。 看來,只有目錄條目本身和沒有內容被觸摸。 任何人都可以解釋,爲什麼這是必要的,或者這可能是一個在Git中的錯誤。
有沒有辦法顯示所有狀態信息,而無需觸摸.git目錄?
感謝您的幫助
更新:
由於整個理由使用git status
命令是,確定未跟蹤文件的數量,我git ls-files --others --exclude-standard | wc -l
取代它,它不需要鎖。
快速瀏覽一下'strace git status'表明這個動作使用了一個鎖文件'.git/index.lock' – 2014-11-14 20:15:09