如何公关和合并后恢复公关使用 Github 恢复按钮

基本上,我使用 Github 恢复按钮恢复以前的 PR 为 特色分支master,然后我决定合并相同的 特色分支,我恢复早些时候,但我不能这样做。步骤如下:

  1. 公关合并 特色分支master
  2. 从(master)恢复 PR 合并
  3. 尝试创建新的公关合并功能分支到 master再次。
  4. 收到这条信息:

没什么可比较的。

Master 是最新的所有提交从功能分支。尝试切换的基础为您的比较。

关于如何将 特色分支再次合并到 master有什么建议吗

53757 次浏览

恢复原状。因此,通过单击恢复按钮,您将创建一个新的 PR (您的步骤2)。一旦合并了这个分支,您将可以选择恢复这个分支,这将创建一个新分支,其中包含您的所有更改。然后,您可以拉动它,对它进行更改(如果需要) ,并创建一个新的 PR。您将丢失 Github 上的所有提交消息,但是所有文件更改仍然存在。很好地参考您原来的分支和恢复在新的公关。

为了避免复杂的重建或者强行掌握。

什么

您应该拉动最新的 master,将您的分支基于 master,然后您应该能够发出另一个 pull 请求。


为什么

不能自动合并回来的原因是分支的基部与主分支的 HEAD 不同步。

恢复“回复”可能会变得混乱,有时缺乏透明度。

此外,还原将阻止使用此代码的其他分支正确合并。

假设你在 master 上有特性 x,并且合并到 y 分支中,然后你决定 master 不应该有特性 x,因为它依赖于 y 分支。当您尝试合并分支 x 时,git-merge 命令会看到原始的合并,并愉快地宣布一切正常,分支已经合并,忽略了特性 x 的这些提交,即使您希望它们与分支 y 合并。

我知道这很老套,但如果有人需要一个好的答案:

合并 PR 并删除分支后,可以创建一个新分支,然后再恢复这个合并。把这个推到远程回购和创建一个新的公关。

这将创建一个新的公关与一个提交命名为“恢复“恢复 # 123废话”’与所有您的变化差异。

Https://www.tildedave.com/2012/11/24/reverting-a-github-pull-request.html

我写这个答案,因为我面对这个问题,我发现这里的答案更多的是理论而不是实际。我又浏览了一会儿,找到了解决这个问题的方法。您可以在文章 给你中找到更详细的答案。

为了解决这个问题,您必须创建一个跟踪 master 和 恢复恢复提交的新分支。然后签出特性分支并合并新分支。现在您可以解决冲突(如果有的话) ,提交和创建一个新的 PR。

以下是命令:

# do the needed changes in the feature branch
$ git commit -m "fixed issues in feature-branch'


# create new branch tracking master branch
$ git checkout -b revert-the-revert-branch -t master


# revert the reversion commit
# find it from your git log
# in linux try: 'git log | grep revert -A 5 -B 5'
$ git revert <revert-commit-hash>


# checkout the original feature branch
$ git checkout feature-branch


# merge the revert branch
$ git merge revert-the-revert-branch


# handle merge conflicts and commit and PR
  1. 进入回复 PR 并点击“回复”(但不要合并它)
  2. git fetch
  3. git checkout <name of revert's revert>

您所有的更改都将在那里,当您创建 PR 时,更改将显示出来。

要清楚-点击“恢复”上的恢复 PR 将给你一个名称,如 revert-202-revert-201-originalbranchname。这就是您要编辑的分支!

我是这么做的。

  1. 看看你的专题分支

  2. 用你的基本分支重新定位: 这将使您的特性分支处于 Base 分支的状态,因为您的特性分支提交已经是基本分支的一部分。您的功能分支提交将在您的恢复 PR 提交之下对齐。

  3. 然后恢复承诺,恢复您的公关。这将使您的特性分支回到其原始状态,但现在有了一个新的提交。

  4. 推动特色分支,然后提高公关。

为什么这样? 通过重新定位,你可以让你的功能分支与基本功能同步,也就是说,让它与基本功能同步提交——需要提前移动到基本功能分支,同时也需要提交将你的更改恢复到你的功能分支上

通过恢复您反向移除您的更改,现在您的更改可以成为基于分支的新提交 AHEAD 的一部分。

  1. 切换到主分支并打印出提交日志 git log --oneline。在这里搜索为 PR 做出的提交并复制提交哈希代码。
  2. 现在运行 git cherry-pick YOUR_HASH_CODE。这将把那个特定的提交带到头部的顶部。
  3. 现在创建一个新的分支并切换到这个新创建的分支并将其推送到 git。
  4. 现在从这个新创建的分支创建一个公关来掌握。