我正在運行 vanilla git(git 版本 2.23.3)作為 AWS 實體上裸存盤庫的原始主機。
我創建了一個包含以下內容的檔案 repo_dir/hooks/pre-receive:
#!/bin/bash -p
echo $1 > pre-receive-old-hash.txt
echo $2 > pre-receive-new-hash.txt
echo $3 > pre-receive-ref.txt
exit 1
我從遙控器進行了測驗推送。我可以確認鉤子已運行,因為我的推送被拒絕了。
然而,雖然 pre-receive-x.txt 檔案存在,但它們是空的。我究竟做錯了什么?
uj5u.com熱心網友回復:
https://git-scm.com/docs/githooks#pre-receive
它不接受任何引數,但是對于每個要更新的 ref,它會在標準輸入上接收一行格式如下:
<old-value> SP <new-value> SP <ref-name> LF
(強調我的——博士)
使您的腳本如下:
#!/bin/bash -p
while read old new refname; do
echo $old >> pre-receive-old-hash.txt
echo $new >> pre-receive-new-hash.txt
echo $refname >> pre-receive-ref.txt
done
exit 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368851.html
