我的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