Earlier quoted context omitted.
This feels like declaring squares aren't rectangles because you can make rectangles that aren't a square.
Git is only commits. Branches and tags are references to the commits; one moves while the other one doesn’t. That’s it. Commits link to their parent(s) until the initial commit. You can visualize a “branch” as a series of commits, but the same thing can exist without calling it a branch: A -> B -> C —> Initial Is that a branch? No. How about: /refs/heads/main = A That’s a branch, and it looks exactly the same as a ta…
You can visualize a "square" as a rectangle with equal sides, but the same thing can exist without calling it a square.