我有一个功能分支,简称为feature,它具有约100次提交,所有这些都与某种功能相关。这些提交都在一段时间内全部 merge 到master分支中。我想列出分支上的所有提交,以便可以将功能重新添加到其他项目中。

基本上,我想在下图上具有绿色圆点的提交ID。

除了使用gitk或类似工具并手动收集所有相关的提交ID之外,如何在Git中做到这一点?

最佳答案

尽管给出了答案并被接受,我还是建议采取更自动的方式(但是,如果您没有将master merge 到feature,它只会起作用):

考虑以下历史记录:

--A---B---C---D---E---F---G (master)
       \     /       /
        H---J-------K       (feature)

基本上,我们要执行git log B..feature
git log --format='%H' feature..master | tail -1 | \
xargs -I '{}' git log '{}'^..feature
git log --format='%H' feature..master | tail -1将找到对master的提交,该提交是在创建feature分支后立即完成的-这是CC的祖先-B也将是H分支的第一个提交feature的祖先。

然后xargs -I '{}' git log '{}'^..feature(即变成git log B..feature)仅显示可从feature到达但不能从B到达的提交。

关于git - 列出主题分支中的所有提交,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17779631/

10-11 22:29
查看更多