我正在使用
this example on publishing a website w/ git post receive hooks.
钩子几乎将裸仓库克隆到临时目录中,并在生成站点后删除该临时git克隆.
#!/bin/sh
# clone a repo, generate site etc
# done generating site, remove the TMP_GIT_CLONE
rm -rf $TMP_GIT_CLONE
当我执行推送时,所有其他任务都很好,但不会删除所有文件.
我得到了以下错误:
remote: rm: <TMP_GIT_CLONE>/.git/objects/pack: Directory not empty
remote: rm: <TMP_GIT_CLONE>/.git/objects: Directory not emppty
…
你明白了
但是,当我直接从命令行调用post-receive脚本时,rm的行为与预期的一样.
为什么?
注意:我看过Post-hook receive act’s differently to shell,其中提问者的问题与裸仓而不是工作树有关.
最佳答案 使用
which rm
得到rm的路径,例如. /斌/ RM
然后用/ bin / rm替换它再试一次.有时,它是由shell脚本的启动脚本发生的.