回滚提交

1.首先创建了4次的代码提交

transactionTemplate 取消回滚 回滚提交_git

2.回滚提交到某一次提交

选中需要回滚到的提交的分支(此次提交的内容将会被删掉),此时是没有冲突情况!

transactionTemplate 取消回滚 回滚提交_推送_02

可以看到,这里是反向的一个操作,删除了第三次的提交内容! 直接推送即可!

transactionTemplate 取消回滚 回滚提交_git_03

3.在第三次提交的代码位置,新增第五次的代码提交

在回滚提交的时候,选择提交的分支,在之后的提交中,改了相同代码的地方,那么就会产生冲突!

transactionTemplate 取消回滚 回滚提交_推送_04


第五次提交在第三次提交的地方修改了内容,所以产生了冲突,此时就需要解决冲突!

transactionTemplate 取消回滚 回滚提交_git_05


transactionTemplate 取消回滚 回滚提交_重置_06


解决冲突:

方式一: 选中冲突文件 ----> “解决冲突” ----> 使用 他人版本解决 冲突(此方法将会丢失该文件第三次提交以及之后提交修改的所有内容,有点类似 重置提交的强制推送(后面会讲到))

transactionTemplate 取消回滚 回滚提交_git_07

transactionTemplate 取消回滚 回滚提交_重置_08


方式二: 找到冲突文件,手动删除第三次提交的内容,保留之后提交的内容(相当于一次新的提交)

transactionTemplate 取消回滚 回滚提交_重置_09

重置提交

1.选择需要重置提交的分支

transactionTemplate 取消回滚 回滚提交_推送_10

transactionTemplate 取消回滚 回滚提交_推送_11

2.重置提交

方式一: 强制推送(不推荐)

重置到第三次提交,会保留第三次提交内容(第四次和第五次提交的内容丢失),现在不要拉取,直接选择推送,勾上强制推送(需要启用强制提交)

transactionTemplate 取消回滚 回滚提交_推送_12


transactionTemplate 取消回滚 回滚提交_git_13


回到第三次已经提交的时候,第四次和第五次提交已经全部丢失,提交历史也不存在了

区别于:回滚提交到第三次,使用他人版本解决冲突 是不包含第三次提交的内容,并且第四次和第五次提交的历史是能看到的

transactionTemplate 取消回滚 回滚提交_回滚_14

  • 启用强制提交

    方式二: 软合并
    先选择重置到第三次提交(强制合并),不要拉取, 然后再选择最新的分支,重置到此分支

    选择软合并,然后就会出现删除第四次提交和提五次提交的代码(相当于一次新的提交),提交推送,则可完成重置到第三次提交,并且第四次和第五次的提交历史也能看到