Git是否可像Composer执行post-dump-autoload钩子那样,合并后自动运行代码?
Git完全支持该需求,可通过内置的post-merge钩子实现
Git自带钩子(Hook)机制,可在特定操作执行完成后自动触发自定义脚本,你需要的合并完成后自动清缓存的需求,刚好可以用post-merge钩子实现,该钩子会在git merge执行成功、没有冲突的情况下自动触发。
具体配置步骤
- 进入本地项目的
.git/hooks目录(.git目录默认隐藏,可通过文件管理器的显示隐藏文件选项查看) - 复制目录下的示例钩子文件作为模板,执行命令:
cp post-merge.sample post-merge - 打开刚生成的
post-merge文件,删除原有示例内容,写入以下内容:
#!/bin/sh # 合并成功后自动清理Laravel响应缓存 php artisan responsecache:clear echo "✅ 响应缓存已自动清理完成"
- 给钩子文件添加可执行权限,执行命令:
chmod +x post-merge
生效说明
- 配置完成后,不管你是单独执行
git fetch + git merge,还是直接执行git pull(本质就是fetch+merge的组合操作),只要合并成功没有冲突,就会自动运行缓存清理命令 - 如果合并过程中出现冲突需要手动解决,
post-merge钩子不会自动触发,解决冲突提交完成后手动执行一次清理命令即可 - 该钩子为本地配置,不会跟随代码提交到远程仓库,协作者如果需要该功能可在各自本地单独配置
内容的提问来源于stack exchange,提问作者nzmattman
相关产品推荐
相关产品推荐

