Git从一个分支恢复所有合并?

nei*_*zod 6 git version-control merge

假设我的历史是这样的:

                     (2A)----(2B)------------ [dev-02]
                     /          \
(A)---(B)---(m1)---(C)---(m2)---(m3)---(D)--- [master]
  \         /            /
  (1A)---(1B)---------(1C)------------------- [dev-01]
Run Code Online (Sandbox Code Playgroud)

后来,我意识到dev-01分支全都错了,所以我想恢复从dev-01到 的每个合并master,而不是从其他分支恢复。

我知道这个命令可以解决问题:

$ git revert -m1 <sha_m2> <sha_m1>
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,只需一次还原提交:

$ git revert -nm1 <sha_m2> <sha_m1>
$ git commit -m "Revert all from branch 'dev-01'"
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何(以编程方式)找到从分支dev-01master. 因为这个命令:

$ git log --merges master
Run Code Online (Sandbox Code Playgroud)

也显示从分支合并dev-02。我知道如果我让 Git 为我生成合并消息(Merge branch 'd1'例如),那么我可以使用一些 bash 脚本轻松过滤分支,但是如果我不这样做怎么办?

假设在第一次 fork 之后我永远不会合并masterdev-01,我能找到从分支dev-01到 的每个合并master吗?(或者我可以通过其他方法从该分支恢复合并吗?)