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-01到master. 因为这个命令:
$ git log --merges master
Run Code Online (Sandbox Code Playgroud)
也显示从分支合并dev-02。我知道如果我让 Git 为我生成合并消息(Merge branch 'd1'例如),那么我可以使用一些 bash 脚本轻松过滤分支,但是如果我不这样做怎么办?
假设在第一次 fork 之后我永远不会合并master回dev-01,我能找到从分支dev-01到 的每个合并master吗?(或者我可以通过其他方法从该分支恢复合并吗?)