As I understand GIT, when I checkout on commit, I should get its files copy in my work directory, but no new commit should appear. Though when I use EGit and checkout on
You don't see a new commit in the reflog. What you see is an updated position of HEAD. You changed it to commit 4b0d96a
when you checked it out. When you check out another commit, branch or a tag, you'll see yet another entry appear in the reflog.
Try switching between two branches repeatedly and you'll see the same two commit hashes appended to the reflog again and again. This does not mean you're creating new commits. You just see existing commits being logged as recent commits pointed to by the HEAD
pointer.
From the git reflog docs:
This command manages the information recorded in the reflogs.
The "show" subcommand (which is also the default, in the absence of any subcommands) shows the log of the reference provided in the command-line (or
HEAD
, by default). The reflog covers all recent actions, and in addition theHEAD
reflog records branch switching.git reflog show
is an alias forgit log -g --abbrev-commit --pretty=oneline;
see git-log for more information.
You may also find this chapter of the Pro Git book interesting. It offers a more comprehensible description of what git reflog
does.