3

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

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

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

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

我当前的解决方法是,我不是在服务器上恢复,而是将更改合并到另一个分支(这是我的开发人员的默认拉取源):

git checkout integrated
git merge master

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

4

1 回答 1

3

最好的方法是为开发人员提供他们自己的特性分支,这些分支具有检查编译的更新后钩子,然后将其合并到 master 中(如果你想对此全神贯注,你可以让钩子推送到你合并的另一个分支手动掌握)。这样您就不必担心它会被拒绝。在我看来,master 应该仅用作发布分支的参考点,而不是每个人都将所有内容推送到的东西。

于 2013-06-22T10:54:11.613 回答