git checkout commit without detached head