我有一个中央git仓库,我删除了它的旧历史记录,导致所有sha ID被更改。所以我有一个新的第一次提交。我想阻止人们将旧历史推向这个新的回购(它会有不同的第一次提交)。
我可以使用:
获取第一次提交的sha1git log --pretty=format:"%H @ %ai (%an)" | tail -1
如何在预接收挂钩中获取克隆的目录?
答案 0 :(得分:1)
您可以添加pre-receive hook来读取每个收到的参考号。
如果第一个接收头没有父节点,则表示有人正在推送主分支的所有历史记录,而不是一些提交。
git rev-list $new-ref
(如果$new-ref
是根提交,则不应返回自身)
如果是这种情况,请拒绝提交(exit 1
)。
如果没有,请不要阻止推送。