I think it helps to look at the mind as a probabilistic survival engine than some truth engine.
If there appears to be a cow in a random field the odds are extremely low that someone put a papier mache cow there. If there’s something that has 50 % chance of being a snake you panic and run because that’s a 50 % chance of dying.
In the case of the authors bug yes the change he introduced had a good probability of being the cause. However he could have increased the probability by going back over commits and confirming that his exact commit introduced the bug. Now the probability goes even higher. But it could still be machine specific a cosmic ray or whatever but the odds are over whelmingly low.
In practice causal reasoning also works in a probabilistic fashion.
I have a simple model saying that if a planes engine is on then it’s flying. Its a single step probability and so it’s not very accurate in the real world.
I do a bunch of experiments and say a plane is flying if the engine is on and air is going over it’s wings faster than a certain speed.
Now we have two correlations connected by a causal model that works in many other cases. Hence the probability of it being correct rises.
But at the same time we should never mistake direct correlation for causality. But in daily life it’s “good enough”.