2010-01-04 92 views
2

在我们的团队中,我们通常将所有任务推送到不同的分支,然后发布管理员检查这些分支并将它们合并到“主”分支中Git post-receive - 如何检查推送分支是否与主合并

有时团队成员忘记合并他们的分支与主分支(之前推) - 所以我想要做的是 - 在用户推后输出一条消息“请合并主” - 我想我需要检查一些东西post-receive hook on remote ..是否有一些例子?或者我应该基本上做什么?

更新:主要的原因 - 尽量减少潜在冲突的数量(因为提交者(不释放经理)将解决这些问题)

回答

2

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

0

你真的不想让纵横交错的合并。主题分支应该合并为主,或者分支应该保持分开,合并主。

也许你正在寻找的是一个分支在被推动之前被重新分配给主人,所以潜在冲突的数量被最小化,因为贡献者已经解决了他们中的大部分。

+0

确切地说 - 我想要的是 - 最小化冲突数 – 2010-01-04 07:36:37

1

我想通过“与主人合并”,你实际上的意思是在主人之上的重设。

每个开发人员都应该:

  • 拉主
  • 重订其对主人的顶部分支推

为了释放经理之前,有一个快进只合并在审查分支之后。
如果出现任何类型的冲突,相同的发布经理应通知开发人员,要求他(再次)拉出主人并进行重新绑定。
这样,只有开发人员负责解决冲突,而不是发布管理器。

rebase vs. merge


对于一个自动的过程,我会去与中央update hook,这将尝试执行合并掌握,并检查“快进”是输出的一部分命令。如果没有,挂钩将失败,并显示git send-email
我目前没有这样的脚本的例子。

+0

是的,这就是我想要完成的 - 但主要问题是开发人员忘记拉大师和rebase - 所以我希望他们recive通知他们忘记做这个 – 2010-01-04 07:46:16

1

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

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