Git post-receive - 如何检查推送分支是否与master合并

时间:2010-01-04 06:58:08

标签: git githooks git-post-receive

在我们的团队中,我们通常会将所有任务分成不同的分支,然后发布经理审核这些分支并将其合并到“主分支”

有时团队成员忘记将他们的分支与主分支合并(在推送之前) - 所以我要做的是 - 在用户推送后输出消息“请与主人合并” - 我假设我需要检查一些东西在遥控器上的接收后挂钩..是否有一些例子?或者我应该做什么?

更新:主要原因 - 最小化潜在冲突的数量(因为提交者(不是发布经理)将解决它们)

4 个答案:

答案 0 :(得分:2)

如果git cherry new-branch master有任何输出,那么在推送之前有人没有重新定位。

答案 1 :(得分:1)

我想通过“与主人合并”,你实际上意味着在主人之上变基。

每个开发者都应该:

  • 拉大师
  • 在推送它之前将其分支重新设置在master之上

为了让发布经理在审核分支后只进行快进合并 如果出现任何类型的冲突,同一个发布经理应该通知开发人员,要求他(再次)拉主人并做一次变装。
这样,只有开发人员负责解决冲突,而不是发布经理。

请参阅rebase vs. merge


对于自动进程,我会选择一个中心update hook,它会尝试执行合并到主控,并检查“快进”是否是命令输出的一部分。如果没有,挂钩将失败git send-email 我目前没有这样一个脚本的例子。

答案 2 :(得分:1)

这样做并不是一个好方法。有一些复杂的问题,最明显的一点是你的主控/推送到主控操作不是原子操作。即有人可能推动介于两者之间的东西。我宁愿建议你看看,例如Gitorious使发布经理的工作变得更加容易。他可以很容易地看到提交包含的内容,并且可以轻松接受/拒绝提交。

但您可能会发现git-wtf有帮助。它显示了如果您仍然坚持尝试自动化解决方案,如何将本地存储库与远程存储库进行比较。

答案 3 :(得分:0)

你真的不想保持纵横交错的合并。主题分支应该合并到主分支中,或者分支应该保持独立,从主服务器合并

也许您正在寻找的是在被推送之前的分支在主服务器上被重新定位,以便最小化潜在冲突的数量,因为贡献者已经解决了大部分问题。