1

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

我想检索主分支的所有提交的列表,从前一个提交 A 直到头部(在本例中为 E)。由于我的项目的特定用例,此列表将用于恢复所有提交。

我一直在使用以下方法收集此列表git rev-list

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

问题是,当我这样做时,我得到了提交 X 和 Y,而提交 D 已经包含了提交 X 和 Y 的更改。我可以使用git revert -m 1. 当我尝试恢复 X 并且 YI 得到一个错误,因为提交不在主树中。我只想检索 A~1、A、B、C、D 和 E。我可以轻松地执行以下操作:

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

但是可以有多个具有不同名称的缺陷分支,并且无法提前知道它们的名称。

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

4

1 回答 1

4
git rev-list master --first-parent
于 2018-10-25T00:51:31.690 回答