$ git branch -l <----- 当前是 master 分支
* master
$ git log --oneline
c222c53 add b
49e519e add a
$ git checkout 49e519e <----- 分离 HEAD 和分支索引,处于 detached HEAD 状态
Note: checking out '49e519e'.
You are in 'detached HEAD' state. 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.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name <--- git 提示要新建分支来记住 commit
HEAD is now at 49e519e... add a
((detached from 49e519e)) $ git branch -l
* (detached from 49e519e) <--- git 创建的临时分支
master
((detached from 49e519e)) $ git checkout - <--- 简单的 checkout 回原来分支,这里是master
Previous HEAD position was 49e519e... add a
Switched to branch 'master'
$ git branch -l
* master <--- 临时分支不见了