Git还原一个分支的所有合并?

时间:2016-10-15 22:36:46

标签: git version-control merge

假设我的历史记录如下:

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

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

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

$ git revert -m1 <sha_m2> <sha_m1>

或者仅使用一次恢复提交就更好了:

$ git revert -nm1 <sha_m2> <sha_m1>
$ git commit -m "Revert all from branch 'dev-01'"

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

$ git log --merges master

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

假设在第一个分支之后我从未将master合并回dev-01,我是否可以找到从分支dev-01master的每个合并? (或者我可以通过其他方法恢复该分支的合并吗?)

0 个答案:

没有答案