git学习注意点
git分支
指针的移动
head指针的移动
git checkout main^ # 移动到main的父节点
git checkout main^^ # 移动到main的父节点的父节点(二级父节点),'^' 符号可以存在更多
git checkout main~n # 移动到main的n级父节点
指定指针的移动
git branch -f bugFix bugFix~3 # 将bugFix指针移动到bugFix的父节点
git branch -f p goal
# 将p指针指向goal节点,goal可以是相对引用,也可以是哈希值
# 哈希值的获取可以使用git log来进行查看
git branch -f bugFix C0 # 和该段的第一句作用相同
bugFix初始指向C5节点,C0,C1…为节点的哈希值
git变更的撤销
push为远程分支,local为本地分支
git reset local^
git reset local~1 # 这两句会将local指针指向C1节点
git branch -f local local^ # 作用和上面两句相同
# 转移到C1节点之后,在C1节点commit会生成一个新的不同于C3的另一个节点
git revert pushed # 在C2节点处执行该语句,效果如下图,会产生C2'节点
# C2'节点内容和C1相同,因此这样其他用户的提交会在C2'节点提交,达到了在远程分支上撤回提交的效果