Delicious tags not updating
Each time a commit is made on a branch, the pointer (reference) is updated to point to the newest commit.
Whilst tags are (generally) immutable, branches are not.
Well, it's simply a commit hash which isn't pointed to by a tag or a branch.
So, whenever you have checked out a non-referenced head, you end up with a $ git init example Initialized empty Git repository in example/(master) $ touch file (master) $ git add file (master) $ git commit -m "Initial" [master (root-commit) 123be6a] Initial 0 files changed, 0 insertions( ), 0 deletions(-) create mode 100644 file (master) $ touch other (master) $ git add other (master) $ git commit -m "Second" [master 5a11d1c] Second 0 files changed, 0 insertions( ), 0 deletions(-) create mode 100644 other (master) $ git log --oneline 5a11d1c Second 123be6a Initial (master) $ git checkout HEAD^ Note: checking out 'HEAD^'. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.
Taking the add() function, for example: m Original Values is initially null so all operations (add, insert, remove, clear) are by default targeted to m Objects.
This is all fine until the moment you decide to enable filtering on the list and actually perform one.