what does git checkout commit hash do