Checking out FETCH_HEAD leads to unexpected results in case of only new tags
The current GitCR Implementation uses a fetch ref spec +<X>:<X> to fetch the requested Git source and then checks out FETCH_HEAD, as that showed to be more robust in case X==HEAD.
However, when there are no other changes and as we fetch tags as well, FETCH_HEAD may point to the latest tag instead.
Also previous experiments have shown that fetching +HEAD:HEAD and checking out HEAD is not reliable as well.
- We have an artificial ref Z2_HEAD and
- if X==HEAD we fetch +HEAD:_Z2_HEAD_ and check out Z2_HEAD
- if X!=HEAD we fetch +X:X and check out X