与Git持续集成

时间:2013-06-22 10:10:49

标签: git continuous-integration

我想在Git之上提供集成挂钩,以便在集成失败时推送被拒绝。例如,当开发人员推送他的更改时,我想检查项目是否仍然成功编译。

目前,我设置了更新后挂钩来进行编译检查。但是,当我想拒绝推送时,我会将更改还原并通知开发人员:

git revert --no-edit HEAD
echo "Rejected !"

我的问题是,当另一个开发人员想要推动他的更改时,他必须首先提取,从而覆盖他的工作,然后需要发出痛苦的重置/存储命令才能正确合并。
此外,在分支合并(需要-m选项)

的情况下,恢复将不起作用

我目前的解决方法是,不是在服务器上恢复,而是将其他分支中的更改合并(这是我的开发人员的默认拉动源):

git checkout integrated
git merge master

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

最好的方法是给开发人员他们自己的功能分支,它们有更新后的钩子,检查编译然后将它合并到master中(如果你想对此进行所有偏执,你可以将钩子推送到另一个分支你手动合并到掌握)。这样您就不必担心它被拒绝了。在我看来,master应该仅用作发布分支的参考点,而不是每个人都推动一切的东西。