我希望能在Git上提供集成钩子,使得当集成失败时,推送被拒绝。例如,当开发人员推送他的更改时,我想检查项目是否仍然可以成功编译。
目前,我设置了post-update钩子来进行编译检查。然而,当我想要拒绝推送时,我会撤销更改并通知开发人员。
我的问题是,当另一个开发者想要推送他的更改时,他必须先拉取,从而覆盖他的工作,然后需要发出痛苦的重置/存储命令才能正确合并。
此外,在分支合并的情况下(需要使用-m选项),还无法恢复。
什么是实现这个目标的最佳方法?
目前,我设置了post-update钩子来进行编译检查。然而,当我想要拒绝推送时,我会撤销更改并通知开发人员。
git revert --no-edit HEAD
echo "Rejected !"
我的问题是,当另一个开发者想要推送他的更改时,他必须先拉取,从而覆盖他的工作,然后需要发出痛苦的重置/存储命令才能正确合并。
此外,在分支合并的情况下(需要使用-m选项),还无法恢复。
我的当前解决方法是,我不是在服务器上还原,而是将更改合并到另一个分支中(这是我的开发人员默认拉取源):
git checkout integrated
git merge master
什么是实现这个目标的最佳方法?