head切换
git checkout 分支名/记录名
作用:让 head 指向某个分支或 某个记录
// 开始,我们可以看到 head 指向的是master
git checkout C1;// head 指向了C1
gitcheckout master; // head 指向了master
git commit; //将 C1 提交
git checkout C2; // head 指向了C2
相对引用1
git checkout 提交记录^
作用:让 head 指向「提交记录的父提交」
指向master的父提交 C1
git checkout C3; // head 指向C3
git checkout HEAD^; // head 指向C2
git checkout HEAD^; // head 指向C1
git checkout HEAD^; // head 指向C0
相对引用2
git checkout HEAD~4;
作用:直接向上(往回)跳4级
git branch -f master HEAD~3
作用:-f 强制让 master 分支,向上跳3级(不管head是否指向master)
想让某个分支2步移动到任意位置:
git checkout 记录名; // 让 head 指向该记录
git branch -f 分支名; // 让该分支移动到 head 指向的记录
git checkout HEAD~4; // 向上跳4步,直接跳到 c0,head 指向c0
git branch -f master HEAD~3; // 分支强制转换为master分支,并向上3级找到父提交