Git rev-list:排除已包含在合并中的提交
Git rev-list: exclude commits already included in a merge
我有一个仓库有一个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 rev-list master --first-parent
我有一个仓库有一个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 rev-list master --first-parent