确保Git push来自同一棵树

时间:2014-04-27 04:07:03

标签: git

我有一个中央git仓库,我删除了它的旧历史记录,导致所有sha ID被更改。所以我有一个新的第一次提交。我想阻止人们将旧历史推向这个新的回购(它会有不同的第一次提交)。

我可以使用:

获取第一次提交的sha1
git log --pretty=format:"%H @ %ai (%an)" | tail -1

如何在预接收挂钩中获取克隆的目录?

1 个答案:

答案 0 :(得分:1)

您可以添加pre-receive hook来读取每个收到的参考号。

如果第一个接收头没有父节点,则表示有人正在推送主分支的所有历史记录,而不是一些提交。

git rev-list $new-ref

(如果$new-ref是根提交,则不应返回自身)

如果是这种情况,请拒绝提交(exit 1)。

如果没有,请不要阻止推送。