git revert

git log为:

00fbc57 (HEAD -> br10) 5
a9f80cd 4x
b097d87 3x
26b63d0 2
32ed3e2 a

文件a的内容为:

5
4
3
2
1
local_c add file a

revert单个commit

语法:
git revert commid_id

  1. 回滚00fbc57
$git revert 00fbc57
$git log -3 --oneline
c10b708 (HEAD -> br10) Revert "5"
00fbc57 5
a9f80cd 4x
$ cat a
4
3
2
1
local_c add file a
// 00fbc57的提交内容消失
  1. 回滚b097d87
$git revert b097d87
$ git log -5 --oneline
7ab13ec (HEAD -> br10) Revert "3x"
c10b708 Revert "5"
00fbc57 5
a9f80cd 4x
b097d87 3x
$ cat a
4
2
1
local_c add file a
// b097d87的提交内容消失

revert多个commit

语法:
git revert commit_id1..commit_id2 // (commid_id1, commit_id2]
git revert commit_id1^..commit_id2 // [commid_id1, commit_id2]


$ git revert a9f80cd..00fbc57
$ git log --oneline -5
eff6c49 (HEAD -> br10) Revert "5"
00fbc57 5
a9f80cd 4x
b097d87 3x
26b63d0 2
$ cat a
4
3
2
1
local_c add file a

# git revert a9f80cd^..00fbc57
$ git log --oneline -5
dffd159 (HEAD -> br10) Revert "4x"
70f495c Revert "5"
00fbc57 5
a9f80cd 4x
b097d87 3x
$ cat a
3
2
1
local_c add file a

避坑

常规流程:

  1. 创建两个分支br10(发布分支) br11(开发分支)
  2. br11中进行更变提交
  3. 将br11分支合并到br10,进行发布
  4. br10中发现重大bug,需要进行revert br11的提交,重新发布
  5. br11修正bug,并继续开发
  6. 将br11分支内容合并到bf10中,br11被revert的内容在合并后的br10中不存在,即新的变更不存在

修正流程:

  1. 在br10中将br11中被回滚的提交revert回来,即revert revert
  2. 将br11的更改合并到br10,进行发布
posted @ 2022-09-08 10:55  flxx  阅读(21)  评论(0编辑  收藏  举报