Git Rev-list:排除已经包含在合并中的提交

时间:2018-10-25 00:38:21

标签: git git-rev-list

我有一个带有master分支的存储库,该分支具有来自不同缺陷分支的频繁合并,如下图所示(defect1是缺陷分支的名称):

我想检索master分支的所有提交的列表,从先前提交A直到头(在这种情况下为E)的列表。由于我项目的特定用例,此列表将用于还原所有提交。

我一直在使用git rev-list收集此列表:

git rev-list "${commitA}~1"..origin/master

问题是当我这样做时,我得到混合的提交X和Y,而提交D已经包含了提交X和Y的更改。我可以使用git revert -m 1还原提交D。当我尝试还原X和Y时,出现错误,因为提交不在主树中。我只想检索A〜1,A,B,C,D和E。我可以轻松地执行以下操作:

git rev-list "${commitA}~1"..origin/master ^defect1

,但是可以有多个名称不同的缺陷分支,并且不可能事先知道它们的名称。

git-rev-list中是否还有其他选项可以启用此行为?

1 个答案:

答案 0 :(得分:1)

git rev-list master --first-parent