Git预提交钩子,如果有上游更改,可防止提交

时间:2018-09-11 07:40:19

标签: git git-merge githooks git-commit git-rebase

说我正在feature/foo上工作...如果remotes/origin/feature/foo进行了更改,是否没有办法阻止git commit?

在进行新提交之前合并更改是否有优势?

我唯一能想到的就是强迫我们使用git stash,合并更改(希望发生的冲突少于其他情况),然后使用git stash apply

1 个答案:

答案 0 :(得分:3)

您的问题的指针:原则上,您可以使用git fetch获取远程存储库的状态。该命令获取远程状态并更新origin/feature/foo分支。您应该可以使用它来构建所需的钩子。

但是!原则上,您只是试图重新创建使用git之类的情况,例如subversion。 git的最大优点是,您可以完全独立于远程存储库进行提交。 (例如,当您在纳尼亚或其他地方离线时出错时,请提交并使用它们还原)

如果您遇到合并冲突太大而又无法处理的问题,那么这似乎更像是您的过程中的问题。也许尝试着重于较小的功能分支,以防止发生大的合并冲突。

所以我猜想用提交挂钩解决这个问题并不是最好的方法。