在.git檔案夾中,訊息
fatal: This operation must be run in a work tree
標題中出現了我的輸入,例如ls, cd ., evenecho hi等等。
我的問題不是如何解決這個問題,也不是問它為什么會出現。
我想出于我自己的目的(如果可能的話PWD,在指定位置時)向這樣的用戶(在任何命令上)發送訊息/home/user_name/target。它是如何安裝的?我的環境是 macOS。(如果我得到任何線索,我會在任何其他作業系統上找到解決方案)
(我的問題可能與 Git 無關)
uj5u.com熱心網友回復:
(對我來說)不清楚你為什么想要這個。簡短的回答是否定的,bash、cshell、zsh、ksh 等沒有這樣的鉤子來呼叫函式并根據該函式的回傳值決定不執行命令。
要執行此操作,您需要自己的 shell(解釋器),并且您的代碼將執行您在 .git 目錄中時要執行的檢查,并在您決定需要列印該訊息時列印該訊息。
包裝 shell 命令似乎很簡單,但完整的 shell 功能卻不是。 注意:以下未經測驗
#!/bin/bash
while [ read line ]
do
if inGitDir
then
if [ $line != "pwd" ]
then
echo "fatal: This operation must be run in a work tree"
else
exec $line
fi
done
然而,這只是一個游戲示例,因為真正的 shell/解釋器處理具有重定向、子 shell、終端控制組、暫停、恢復等的多個命令。
如果你想(仍然)這樣做,那么尋找 bash 或你最喜歡的 shell 的源代碼并實作它。:-)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/471907.html
