我有一个中央git存储库,其中我删除了它的旧历史,导致所有的sha ID都被更改了。所以我有了一个新的第一次提交。我想防止人们将旧的历史推到这个新的repo中(它将有一个不同的首次提交)。
我可以使用以下命令获取第一次提交的sha1:
git log --pretty=format:"%H @ %ai (%an)" | tail -1如何在预接收钩子中获取克隆的目录?
发布于 2014-04-27 15:48:28
您可以添加一个读取每个接收到的ref的pre-receive hook。
如果第一个收到的头没有父级,这意味着有人正在推送主分支的所有历史记录,而不是几个提交。
git rev-list $new-ref(如果$new-ref是根提交,则它应该只返回自身,没有父级)
如果是这种情况,则拒绝提交(exit 1)。
如果没有,不要阻止推送。
https://stackoverflow.com/questions/23319277
复制相似问题