Temporarily switch working copy to a specific Git commit

Question

How to switch to specific Git commit without losing all the commits made after it?

I want that local files will be changed, but commits' database will remain intact, only the current position pointer is set to currently selected commit.

I want to change files' state to specific commit, run project and, when finished, restore files back to last commit.

How to do this without zipping the whole project's folder?

Answer

If you are at a certain branch mybranch, just go ahead and git checkout commit_hash. Then you can return to your branch by git checkout mybranch. I had the same game bisecting a bug today :) Also, you should know about git bisect.

Force add despite the .gitignore file

Warning: push.default is unset; its implicit value is changing in Git 2.0