我有一个带有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中是否还有其他选项可以启用此行为?
答案 0 :(得分:1)
git rev-list master --first-parent