说一下需求,我本地有一个修改文件不想提交,每次commit都需要reset这个文件一下。很是麻烦,所以想利用git hook的预操作功能来实现自动reset的操作。
1。首先是git hook的目录路径。其中android_1是我的git工程目录。
2.这里有很多.sample文件。sample文件只是样例,取消了后缀.sample之后才是生效的。每个文件都有对应的执行触发点,具体就不细说了,我这里使用的触发点是commit命令生效之前,也就是pre-commit。
3.复制prr-commit文件,重命名去掉后缀.sample。文件方式进行编辑,清掉里面所有内容,添加如下内容
#!/bin/sh
echo "before commit show status"
echo "reset the CtripApplication file"
git reset xx.java
#这里的xx.java文件指的想要被reset掉的文件路径。
#echo指数输出状态语句,没有实际作用。
最后保存
4.最后测试一下效果
.
如图所示,我有两个已经add的文件,commit提交之前根据打出的日志,提示已经reset掉了XXActivity.java,然后执行commit。
最后git status显示效果,
提交生成生效,xxActivity.java被reset掉,只提交了xxFragmentV2.java生成commit.
5.总结,
这个功能虽然好像,但是好像也造成了一些问题,那就是需要频繁的gc。这个问题后续在想办法解决。不过简单的解决方法也容易,那就直接吧git gc命令加到
post-commit里面。这样就会每次自动执行gc操作了。
本文感谢
文章为原创,转载请标注出处:利用git hook每次commit时执行一些其它操作。_分享+记录-CSDN博客