【发布时间】:2015-01-16 05:46:09
【问题描述】:
我有以下提交 A->B->C->D。如果我推动 D 的 SHA,我知道它也需要 A、B、C。
我的要求是一个 bash 脚本,它将最后一次提交变基并使其成为第一个,因此它不会有任何依赖关系。
所以,A->B->C->D 应该变成 D->A->B->C,这样我就可以在推送中使用 D 的 SHA。
我已经尝试过多次,但我无法在不破坏任何东西的情况下完成它。
您以前是否这样做过,或者您对如何在 bash 脚本中执行此操作以方便重复使用有任何想法?
【问题讨论】:
-
如果你从 A 的父级创建一个新的分支 NewBranch,然后在其上挑选 D,然后挑选 A、B 和 C?粗略的你可以在最初的cherrypick之后推动。
-
您是如何陷入想要反复执行此操作的情况的?如果提交 A、B、C 和 D 是真正独立的并且可以像那样移动,则应该将它们全部放在单独的分支上,并在完成后将它们合并。如果它们不是独立的,则无法保证此类操作不会出现需要手动解决的合并冲突。
-
我正在使用子模块,并且我有一个脚本可以自动标记分支中的子模块并将其推送到特定的远程。问题是,在推送子模块后,我需要从父模块提交它并将其推送到原点。我想重新设置基准,因为用户可能有待推送的提交,并且不想推送所有内容,只推送子模块的“指针”。所以在我的情况下,D 应该独立于 A,B,C
-
您可以为交互式 rebase 定义一个自定义
EDITOR以使用它重新排序提交以实现此目的。 -
是的,但这是用户应该尽可能简单地做的事情,因此在执行 bash 脚本以标记子模块并将其推送到原点之后,我还需要一种自动推送提交的方式父回购