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