【发布时间】:2018-10-25 00:38:20
【问题描述】:
我有一个带有 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 中是否有其他选项可以启用此行为?
【问题讨论】:
标签: git git-rev-list