我的项目中有一个分支,不断被合并回master,并且在以后需要再次开发相应部分时重新分支。
我想要做的是记录该分支中的所有提交(从它的初始开始)。可悲的是,我的尝试只能在分支重新开放(尚未关闭)后的最后一次提交
说明:
Master: A ------- D---> E ---> F ------- I
\ / \
MyBranch: B --> C G --> H
我想列出B,C,G,H。但我的所有尝试都只返回G,H
我试过了:
1. git rev-list ^master MyBranch
2. git log --no-merges master..
与origin / MyBranch比较也无济于事。
有办法做到这一点吗?无需知道分支先前合并为主的提交的哈希?
谢谢!
编辑:修复了树形结构
答案 0 :(得分:1)
你可能在F上重置你的MyBranch
或者从master到MyBranch进行快速合并以获得你的MyBranch引用,指向你开始使用G的地方。现在不再有任何引用表明C属于一个特定的分支,它现在只是master和MyBranch的共同历史的一部分。如果您在初始MyBranch之后完成了从主人到MyBranch的--no-ff
合并,那么您将通过git log --first-parent --no-merges
获得MyBranch的连续历史记录。承诺对分支机构一无所知,只指向他们的祖先。分支只是指向特定提交的引用。
从旧分支行获取提交的唯一方法是解析提交消息并查找"合并分支..." if 包含在合并提交消息中,然后从那里回溯。
由于D,E和F现在对于master和MyBranch是常见的,因此在D丢失之前区分特定分支。