git init is only to use if you want a new repository of your own. https://git-scm.com/docs/git-init
If you want to work on a 'normal' git repository you have to use clone first (NOT init). After this you can switch to the branch or tag you want.
Earlier in the thread you have used the clone command and after this you can switch with 'git branch lazarus_2_0_12 origin/lazarus_2_0_12' and followed by a "git checkout lazarus_2_0_12"
I intentionally did specify steps, without "clone".
init, then fetch => allows you to fetch any single commit.
It is possible to fetch as many individual commits (even from different repos) as you want. They all will go to FETCH_HEAD.
So then you must give them a branch/name of their own, before fetching the next.
That is done with:
git switch -c MyName FETCH_HEAD
After that you can switch to it with just
git switch MyName
Note that branches fetched like this, to not have a remote to follow.
git pull / git remote update / git fetch
will NOT get any updates for them.
If you are happy with just having downloaded the commit (like an svn export), and do no longer need to interact with the remote, then you can delete the .git folder.