IDEA Git操作(二)HEAD分离状态、操作符^和~、用reset和revert撤销提交

说明

本教程按照 git在线练习 顺序进行,将在线测试的命令操作落地到 IDEA,使用开发工具来实现所有在线练习中的操作。

你可以结合 git在线练习 来学习本教程,先在线学习git命令,再在 IDEA 中实现相同操作。



 

HEAD分离状态



 

准备提交结构




切换到 master 并将 master 重置到第二次提交

删除 bugFix

新建 bugFix 分支

切换到 master 并做一次提交

切换到bugFix,并做一次提交

对 bugFix 再做一次提交

上面的提交历史对照 learngitbranching.js.org 的结构图

HEAD分离状态




用哈希值切换到最后一次提交

这时,HEAD 和 bufFix 是分离的状态

上面的提交历史对照 learngitbranching.js.org 的结构图

操作符 ^




切换到 master

现在,HEAD 在 master 位置

上面的提交历史对照 learngitbranching.js.org 的结构图

使用操作符 “^” 切换到 c3

git checkout bugFix^

# 在 dos 命令中,^是特殊符号,需要加双引号,所以要写成:
git checkout "bugFix^"
 

在 Terminal 终端中运行命令

现在,HEAD 在 bugFix 的上一个提交位置

上面的提交历史对照 learngitbranching.js.org 的结构图

操作符 ~ 和强制移动分支位置



 

准备提交结构




切换到 master

提交一次

再切换到 bugFix 提交一次

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 的结构图

reset 和 revert



 

准备提交结构




master 重置到第二次提交,删除 bugFix 分支

新建 pushed 分支,并提交一次

重新切换到master,再新建 local 分支并执行一次提交

上面的提交历史对照 learngitbranching.js.org 的结构图

用 reset 撤销提交




重置 local 分支到上一个提交

git reset local^

# dos中要加双引号
git reset "local^"
 

local 的提交被撤销了

用 revert 撤销提交




先切换到 pushed 分支,然后用 revert 撤销pushed分支的变更

revert 会在当前分支上前进一步,生成的新的提交

新生成的提交与“添加打印2”的提交相同,相当于把“添加打印3”撤销了

上面的提交历史对照 learngitbranching.js.org 的结构图

猜你喜欢

转载自blog.csdn.net/abu1216/article/details/111003024