【发布时间】:2014-02-20 19:00:08
【问题描述】:
我的 git 存储库中的一个脚本分发给许多用户。当他们运行此脚本时,我希望它查看我的存储库并查看是否对此脚本进行了任何更改,如果是,建议用户从存储库更新脚本。用户对git一无所知,希望在系统实现上尽量少了解。
我想在每次提交时自动更新此脚本的 md5sum,而无需手动操作。这是我写的预提交钩子
#!/bin/sh
echo -n "# " > test.txt.tmp
linesNumber=`wc -l test.txt | awk '{print $1}'`
tail -n $(($linesNumber - 1)) test.txt | md5sum | awk '{print $1}' >> test.txt.tmp
tail -n $(($linesNumber - 1)) test.txt >> test.txt.tmp
mv test.txt.tmp test.txt
#git push
#git commit --no-verify --message "update file md5sum"
md5sum 工作正常,问题是提交后我的脚本再次显示为已修改。我试图在不运行预提交挂钩(--no-verify)的情况下提交我的更改,但 git 说我无法提交,因为我的分支在 'origin/master' 之前 1 次提交,我试图在之前推送我的更改提交 md5sum 但它从未完成操作。
实现此类功能的正确方法是什么?
【问题讨论】:
标签: git githooks pre-commit-hook