我的git仓库中的一个脚本分发给许多用户。当他们运行这个脚本时,我会查看我的存储库并查看是否对此脚本进行了任何更改,如果是这样,则建议用户从存储库更新脚本。用户对git一无所知,并希望在系统实现中尽可能少地理解。Git钩子 - 在提交时自动更新文件md5sum
我想我每次提交它时自动更新这个脚本的md5sum,而不需要理会和做手工。这里是pre-commit钩子我写
#!/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说我不能提交,因为我的分支比1提交先于'origin/master',我试图推送我的更改提交md5sum但它从未完成操作。
什么是实现这种功能的正确方法?
我我的Git版本更新到1.9,我接着说:混帐的混帐'命令commit'前添加test.txt'。现在,我收到此错误信息 “错误:编号裁判/头/主是710174cafabb7baf34ddeae21f16df178816cefe但预计ee25c68f58161015f9654559a155da2851a059bd” – e271p314
有趣。在pre-commit钩子里面现在有'git commit' *吗?这可能会混淆后续的'git commit',当pre-commit钩子退出时会发生。 – torek
但我使用'git commit --no-verify',不应该调用预提交钩子。也许完全不同的想法?假设你想在每次对这个文件做出改变时在某个文件中加入某种标识符,你会怎么做? – e271p314