Hello Alain,
Axon has not been designed to work with this usecase. Instead, Axon favours consistency on the command model. We have had various discussions in the past about these kinds of usecases. Each time, the conclusion was that there are so many pitfalls in this approach, that it requires a different type of framework to deal with it. Perhaps using Git itself isn't even that bad of a idea.
On the other hand, depending on your exact needs, Axon might do the job for you. Axon only expects a unique aggregateIdentifier and sequenceNumber combination in the event store, but if you identify events in another way (e.g. branch name), then you can probably remove the uniqueness restriction from the event store. In the Meta-Data, you'd have to refer to the event ID of the "base" the changes were made on. That would allow you to recreate the graph. The sequence number would then just server to efficiently query the events in the right order.
Kind regards,
Allard Buijze