Why can't git push, when it encounters a `.git/shallow`, just ask the git server to fill in the remaining history by verifying the parent hashes the client can send?
I found this[2] very enlightening.
[1] https://github.blog/open-source/git/get-up-to-speed-with-par...
[2] https://www.howtogeek.com/devops/how-to-use-git-shallow-clon...