【问题标题】:Git rev-list: exclude commits already included in a mergeGit rev-list:排除已包含在合并中的提交
【发布时间】: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


    【解决方案1】:
    git rev-list master --first-parent
    

    【讨论】:

      猜你喜欢
      • 2020-02-15
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多