git revert
当讨论 revert 时,需要分两种情况,因为 commit 分为两种:
1.一种是常规的commit
,也就是使用 git commit
提交的 commit;
2.另一种是 merge commit
,在使用 git merge
合并两个分支之后,你将会得到一个新的 merge commit
Example 1: revert merge commit
-
746f079ac3ce3472a8c235ebc69447ab5ac1fdac 是由dff7818 和 54363f3两个分支合并生成
-
git revert -m 1 746f079ac3ce3472a8c235ebc69447ab5ac1fdac,其中 -m 1(表示保留Merge: dff7818 54363f3 的第1 列主线分分支)
-
需要注意的是 -m 选项接收的参数是一个数字,数字取值为 1 和 2,也就是 Merge 行里面列出来的第一个还是第二个,其含义用来保留某个分支
-
revert merge commit 有一些不同,这时需要添加
-m
选项以代表这次 revert 的是一个 merge commit,但如果直接使用git revert <commit id>
,git 也不知道到底要撤除哪一条分支上的内容,这时需要指定一个 parent number 标识出"主线",主线的内容将会保留,而另一条分支的内容将被 revert
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/ release_x.5.x_cam_v2_prod_revert(dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git log
commit 746f079ac3ce3472a8c235ebc69447ab5ac1fdac (origin/release/x.5.x/cam_v2_prod, origin/dev/banting/release-x.5.x/cam_v2_prod_revert)
Merge: dff7818 54363f3
Author: bantingsz <102581316+bantingsz@users.noreply.github.com>
Date: Fri Jul 15 14:58:58 2022 +0800
Merge pull request #456 from xxx/dev/banting/x.5.x/cam_v2_prod
Dev/banting/x.5.x/cam v2 prod
commit 54363f3776a8d853d87d54e54a7acacfe9a298aa
Author: banting.wang <banting.wang@xxx.cn>
Date: Fri Jul 8 16:55:39 2022 +0800
update version number
commit 8036bec90daec6fc04f89d371e178d6bb50e014c
Author: banting.wang <banting.wang@xxx.cn>
Date: Wed Jun 22 18:23:37 2022 +0800
update submodule sdk
commit dff781815e11092973da3ff2b21e55345fc3bdd5
Merge: 4321070 6414e9f
Author: jerefy <77186930+jerefy @users.noreply.github.com>
Date: Fri May 13 13:47:14 2022 -0700
Merge pull request #400 from wyzelabs-inc/release_x.5.x_camv2panv1
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert(dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git submodule status
39d85aa03a2d300ca673f6ceae7d5c3115ea592f cloudai (v1.0.0_v2pan-6-g39d85aa)
+8052b335b4aedc4ff450ce27e7d25283b4ea32ab sdk (v2.1.1-24-g8052b33)
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git revert -m 1 746f079ac3ce3472a8c235ebc69447ab5ac1fdac
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git status
On branch dev/banting/release-x.5.x/cam_v2_prod_revert
Your branch is ahead of 'origin/dev/banting/release-x.5.x/cam_v2_prod_revert' by 1 commit.
(use "git push" to publish your local commits)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: sdk (new commits)
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/relase-x.5.x/cam_v2_prod_revert)
$ git submodule update
Submodule path 'sdk': checked out 'fa9d4e4cbcc0cd48b746a21f05cb3721309446c5'
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/relase-x.5.x/cam_v2_prod_revert)
$ git status
On branch dev/banting/relase-x.5.x/cam_v2_prod_revert
nothing to commit, working tree clean
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git log
commit aa40f71604983144cb89e775d0c6d140bc547a82 (HEAD -> dev/banting/release-x.5.x/cam_v2_prod_revert)
Author: banting.wang <banting.wang@xxx.cn>
Date: Thu Aug 25 19:02:11 2022 +0800
Revert "Merge pull request #456 from wyzelabs-inc/dev/banting/x.5.x/cam_v2_prod"
This reverts commit 746f079ac3ce3472a8c235ebc69447ab5ac1fdac, reversing
changes made to dff781815e11092973da3ff2b21e55345fc3bdd5.
commit 746f079ac3ce3472a8c235ebc69447ab5ac1fdac (origin/release/x.5.x/cam_v2_prod, origin/dev/banting/release-x.5.x/cam_v2_prod_revert)
Merge: dff7818 54363f3
Author: bantingsz <102581316+bantingsz@users.noreply.github.com>
Date: Fri Jul 15 14:58:58 2022 +0800
Merge pull request #456 from wyzelabs-inc/dev/banting/x.5.x/cam_v2_prod
commit 54363f3776a8d853d87d54e54a7acacfe9a298aa
Author: banting.wang <banting.wang@xxx.cn>
Date: Fri Jul 8 16:55:39 2022 +0800
update version number
commit 8036bec90daec6fc04f89d371e178d6bb50e014c
Author: banting.wang <banting.wang@xxx.cn>
Date: Wed Jun 22 18:23:37 2022 +0800
update submodule sdk
commit dff781815e11092973da3ff2b21e55345fc3bdd5
Merge: 4321070 6414e9f
Author: jerefy <77186930+jerey@users.noreply.github.com>
Date: Fri May 13 13:47:14 2022 -0700
Merge pull request #400 from wyzelabs-inc/release_x.5.x_camv2panv1
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/release-x.5.x/cam_v2_prod_revert)
$ git push origin dev/banting/release-x.5.x/cam_v2_prod_revert
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 431 bytes | 431.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:xxx/yyy-integration.git
746f079..aa40f71 dev/banting/release-x.5.x/cam_v2_prod_revert -> dev/banting/release-x.5.x/cam_v2_prod_revert
Banting@DESKTOP-UDFLV4N MINGW64 /d/Code/github/release_x.5.x_cam_v2_prod_revert (dev/banting/release-x.5.x/cam_v2_prod_revert)