300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > git 回滚 取消commit 取消merge等回退操作

git 回滚 取消commit 取消merge等回退操作

时间:2020-12-29 00:08:14

相关推荐

git 回滚 取消commit 取消merge等回退操作

前言

在此之前,建立一个约定。

commit会产生提交id,merge之后也会产生提交id。也就是说merge是commit的一种操作。

但是为了表达方便,我们将commit和merge统称为更新,commit只是单指当前分支的提交,而merge单指合并操作。

正文

首先明确下问题:

回滚

将当前的version重置到某次提或者合并,在此次提交或者合并之后的更新都会被丢弃。

比如 git reset --hard取消commit

将某次commit的更新取消,但是这次commit的前后更新都不受影响。

比如 git revert commit_id取消merge

将某次merge取消,但是其前后的更新都不受影响。

比如 git revert commit_id~number

number是这次merge的提交。

eg:

git log

git revert fe6368d8b7c4e73137865b2f7de944aac8f508d6~2

那么这次fe6368d8b7c4e73137865b2f7de944aac8f508d6对应的2次更新 8134271和4c63926都会被取消git git revert fe6368d8b7c4e73137865b2f7de944aac8f508d6 -m 1

只会取消8134271这次更新

据我所知,回滚其实用的很少,因为如果某次更新有问题,那么需要取消某次更新而不应该粗暴的回滚到那次更新之前(会操成误伤,抹去了别人的更新)。

所以推荐还是使用gir revert。

当然–soft 和–hard --mixed的区别可以如下理解:

soft

只操作了HEAD,暂存区和work都没有被影响hard

操作了HEAD、暂存区和work,都被影响了mixed

操作了HEAD、暂存区,work没有被影响

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。