1 wjidea 2020-09-18 12:27:11 +08:00 可以试一下 cherry-pick ? |
![]() | 2 rrfeng 2020-09-18 12:33:03 +08:00 revert revert 就行 |
3 Hieast 2020-09-18 12:56:12 +08:00 不保留 master 历史的话可以直接把 master reset 到合并 A 之前的那个版本,再 merge B,个人开发者这么干很爽。 |
![]() | 4 calmzhu 2020-09-18 13:05:12 +8:00 怎么回退的 |
![]() | 5 wuwukai007 OP @calmzhu gitdesktop 客户端里面点了 revert 回退的 |
6 ypcs03 2020-09-18 13:27:33 +08:00 在 b 分支 rebase 主分之再 merge 试试 |
![]() | 7 calmzhu 2020-09-18 14:09:37 +08:00 revert 不行的,revert 的意思就是 commit 一个反内容的提交。所以对于 master 来说是 A1 A2 A3 ---MergeB /插入 master master1 --> Merge A ---> MergeB(只是内容为取消 MergeA) 所以这时候 A 的 commit 信息是在 master 的。 要么 reset master 到 master1 或者直接从 master1 checkout 一个新的 branch 用来 mergeB 就可以了 |
![]() | 8 moonrailgun 2020-09-18 14:13:18 +08:00 其实 2 楼正解 你 revert 我 revert 你的 revert |
![]() | 9 way2explore2 2020-09-18 15:14:18 +08:00 1. revert-revert 2. on master, hard reset to (before merge A), then merge B I usually use 2 |
![]() | 10 baiyi 2020-09-18 15:33:31 +08:00 revert 是提交了一个反提交,所以你的历史中分支 B 已经合并了。 可以直接 reset 到合并之前,然后 merge B 。 |
![]() | 11 networm 2020-09-25 15:19:02 +08:00 via iPhone Git 通过节点的依赖关系决定是否合并,通过合并提交自身的所有文件改动来引入要合并分支的改动。 以 master 合并 A 分支前的提交新建分支 X,合并 B 分支(这样可以正确得到所有 B 分支的改动) 然后 master 分支再合并这个新建的分支 X,把 B 分支的改动带到 master 分支。 这种方法类似 @way2explore2 的第二种做法,但是不丢失 master 合并 A 分支后的所有提交及改动。 可以尝试一下,理论上可行。 |