reset操作
如果想回退commit链的某一个节点,可以使用 git reset命令
回退到上n次commit: git reset --hard HEAD~n (这样子会把前n次的commit节点删除,慎用)
跳转到任意一次commit: 通过sha1值
如果不知道是第几次,那就要借助git reflog命令去查看(这个命令也可以帮助我们去恢复已经被删除的commit节点)
git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录
后悔操作:
1.git reflog去查看被删除的commit记录的sha1值
2. git reset --hard sha1值的前几位(回到被删除的commit节点)
checkout操作
reset命令会回滚到某个节点,是删除操作。
如果我们只是单纯地想回到某个节点看看,而不是想删除某些节点,那么可以用checkout命令去进行版本穿梭。
命令:git checkout sha1值 (可以用git log查看当前分支的提交记录)
用checkout 命令的版本穿梭是游离状态的,有2点需要注意:
1.修改后、必须提交
2.创建分支的好时机
假如commit链为 a1 --> a2 ---> a3 ---> a4
我们从a4穿回了a2节点:git checkout a2的sha1值
这时我们对某个文件进行了修改,那你必须提交后 才能离开当前节点
提交后,我们的sha1值就会从b718dce(a2节点的sha1值)变成74b19fc(git自动帮我们开辟了一个commit节点,这个commit节点的sha1值就是74b19fc)
所以说,现在是创建分支的好时机。我们应该为新开辟的commit节点创建一个分支
命令:
git branch mybranch 74b19fc(创建分支,分支命令为mybranch 后面加上sha1值)