Git uses a DAG. The A stands for "acyclic". Loops are not allowed.
I'm aware of that. It's acyclic by design, but is this actually enforced
by the code? Or does it simply trust that no loops will ever occur,
because it's so improbable?
After Andrew's response I investigated a bit, and it seems I
overvalued the attempts to "break" SHA-1. Wikipedia quotes a 2008
attack, that can create a collision with 2^51 hash function calls.
Which, of course, is still way to much. Good for you! :-)