本教程按照 git在线练习 顺序进行,将在线测试的命令操作落地到 IDEA,使用开发工具来实现所有在线练习中的操作。
你可以结合 git在线练习 来学习本教程,先在线学习git命令,再在 IDEA 中实现相同操作。
切换到 master 并将 master 重置到第二次提交
删除 bugFix
新建 bugFix 分支
切换到 master 并做一次提交
上面的提交历史对照 learngitbranching.js.org 的结构图
这时,HEAD 和 bufFix 是分离的状态
上面的提交历史对照 learngitbranching.js.org 的结构图
切换到 master
上面的提交历史对照 learngitbranching.js.org 的结构图
使用操作符 “^” 切换到 c3
git checkout bugFix^
# 在 dos 命令中,^是特殊符号,需要加双引号,所以要写成:
git checkout "bugFix^"
在 Terminal 终端中运行命令
现在,HEAD 在 bugFix 的上一个提交位置
上面的提交历史对照 learngitbranching.js.org 的结构图
HEAD移动到 master 的上一个提交
git checkout "master^"
bugFix 强制移动到 bugFix^
通过 -f 参数可以强制移动分支的位置
git branch -f bugFix "bugFix^"
bugFix 分支上现在有一个隐藏的提交:“添加打印-2”,看一下它的哈希值
git reflog
上面的提交历史对照 learngitbranching.js.org 的结构图
master 强制移动到隐藏提交上(上一步看到的哈希值)
git branch -f master b6c4
bugFix 强制移动到初始提交
git branch -f bugFix bugFix~3
切换到第二次提交
git checkout "HEAD^"
上面的提交历史对照 learngitbranching.js.org 的结构图
master 重置到第二次提交,删除 bugFix 分支
重新切换到master,再新建 local 分支并执行一次提交
上面的提交历史对照 learngitbranching.js.org 的结构图
重置 local 分支到上一个提交
git reset local^
# dos中要加双引号
git reset "local^"
先切换到 pushed 分支,然后用 revert 撤销pushed分支的变更
新生成的提交与“添加打印2”的提交相同,相当于把“添加打印3”撤销了
上面的提交历史对照 learngitbranching.js.org 的结构图