Git-如何用现有PR更改Git分支的起点



我在一个特性分支上工作了很长一段时间。现在,我创建了一个拉请求来合并我的分支,但因为我的分支很旧,所以有很多测试都失败了。

我想将分支的起点移动到新的提交,而不会对现有的PR造成任何更改。

我试过了,但不是我想要的->我创建了一个新的分支,并精心挑选了我的承诺。它很有效,但这样做,我将不得不创建一个新公关&我的PR上已经有一些评论了。所以,我不想失去它们。

我有这样的东西:

master
A--B--C--D--...--M--...--Y--Z--
                   /
                 /
feature  nA--nB--nC--nD--nE

我想做的事:

master
A--B-...--M--..............--Y--Z--
                   /
                 /
feature      nA--nB--nC--nD--nE

基本上将特征分支的起点从C移动到M。

我听说了rebase,但我不太明白这是怎么回事,在这种情况下是ituseful吗?我是初学者,请详细解释/下达命令。

我创建了一个新的分支,并精心挑选了我对它的承诺。它很有效,但要做到这一点,我必须创建一个新PR

实际上没有:你可以将你的PR分支重置为新分支并强制推送它。
它应该更新现有的PR,同时保留注释(可能指旧的过时文件(

git switch -C pr_branch new_branch
git push -f origin pr_branch

git rebase也有帮助,因为它会在更新的远程分支上重播您的pr_branch提交,但是,如果您已经在新分支中手动挑选了相关提交,那就足够了:将PR分支重置为它并强制推送。

你可以在一个旧的承诺中尝试一个新的公关分支,并评论:试着在那里强制推送,以检查这是否像广告一样有效。

我希望我理解你的问题。

我们假设有以下提交哈希:

  • M=>000000
  • nA=>B000000

您应该发布的指令是:

  1. git checkout A000000-B我的固定功能
  2. 基价B000000
  3. git分支-D特性

换句话说:

  1. 从commit M开始创建一个新分支
  2. 将在M之后的nA处开始的分支移动(重新定基(到新分支内";我的固定特征">
  3. 删除旧的";特征";分支机构

显然,步骤2可能会产生您应该解决的冲突。

不幸的是,我没有尝试这个解决方案,但在我的工作经验中,我应用了好几次。我希望它能帮助你。

最新更新