In Git commits form a directed acyclic graph where each commit points to one or more parent commits. In addition to the commit objects you also have ref (i.e. reference) objects: branches and tags. They point to various commits in the commit graph. Your problem is that you weren't on a branch when you made the commits and no branch (or tag) points to them. At any time you can use commands
git status
and
git branch
to check whether you are on a branch or not.
Why do they not show on GITK (at least as a branch or something)?
As far as I know Gitk looks for the commit objects starting from the refs. If no ref points to your commits (or the directed acyclic graph of commits that leads to them) they are effectively invisible.
How do I merge them into master?
Fortunately the reflog facility keeps track of operations like checkouts and commits (among other things). In your reflog listing you can see the entry for your last commit:
1b8c11d HEAD@{1} commit: Shortened toRgb() function
You should be able to merge the commits to your master branch by using the SHA1 ID you see in the reflog:
git checkout master
git merge 1b8c11d
I gather this happened when I checked out tag 0.42. Why is that not the same as master? (I had tagged the master in its latest state)
The main difference between branches and tags is that a tag always points to the same commit but a branch moves forward. For example, if you are on branch "master" and make a new commit, the "master" branch moves forward and starts pointing to the new commit you just created. When you checkout commits, tags or branches Git takes your commands quite literally and checks out exactly what you asked for.
When I click push, why does the remote repo claim to be up to date.. shouldn't it try to update these commits into whatever branch they are in?
Your commits aren't on any branch. You first need to merge them to a branch (e.g. to master) as shown above. After this the push should work normally.