利用git hook每次commit时执行一些其它操作。

来源:互联网 发布:初唐网络 编辑:程序博客网 时间:2024/06/06 20:10

说一下需求,我本地有一个修改文件不想提交,每次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操作了。

本文感谢

 @深圳+Geek_Soledad  
的帮助。

文章为原创,转载请标注出处:http://blog.csdn.net/rzleilei/article/details/51612017



0 0
原创粉丝点击