如何在使用Github Revert Button恢复PR后再次进行PR和合并

Abo*_*ed1 30 git merge github

基本上我使用Github还原按钮功能分支的先前PR恢复为master,然后我决定合并我之前恢复的相同功能分支,但我无法这样做.步骤如下:

  1. PR将功能分支合并到master
  2. 从(master)恢复PR合并
  3. 试图创建新的PR以master再次合并功能分支.
  4. 得到这条消息:

没有什么可比的.

master是来自feature-branch的所有提交的最新版本.尝试切换底座以进行比较.

有关如何将功能分支再次合并到的任何建议master

Sha*_*era 43

我写这个答案是因为我遇到了这个问题,我发现这里的答案更具理论性而不是实践性。我多浏览了一点,找到了解决这个问题的方法。您可以在此处的文章中找到更详细的答案。

为了解决这个问题,你必须创建一个新的分支来跟踪 master 并恢复 revert commit。然后结帐到功能分支并合并新分支。现在你可以解决冲突(如果有的话),提交并创建一个新的 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
Run Code Online (Sandbox Code Playgroud)

  • @Aboodred1 请将此标记为答案,因为大多数人认为这是有用且实用的答案。 (3认同)

小智 33

只需恢复还原.因此,通过单击还原按钮,您将创建一个新PR(您的步骤2).合并后,您可以选择还原它,这将创建一个包含所有更改的新分支.然后您可以将其拉出,对其进行更改(如果需要)并创建新的PR.您将丢失Github上的所有提交消息,但所有文件更改仍将存在.很高兴参考你的原始分支并在新PR中恢复.

任何可以避免复杂的变形或强迫推动掌握的东西.


小智 6

我知道这很旧,但如果有人需要一个好的答案,请点击此处:

在合并 PR 并删除分支并稍后还原此合并后,您可以创建一个新分支,然后还原还原。将其推送到远程仓库并创建一个新的 PR。

这将创建一个新的 PR,其中包含一个名为“revert "revert #123 blabla"”的提交,其中包含您对 diff 的所有更改。

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


Sel*_*kar 5

  1. 切换到master分支并打印出提交日志git log --oneline。在这里搜索为 PR 所做的提交并复制提交哈希代码。
  2. 现在运行git cherry-pick YOUR_HASH_CODE。这将使特定的承诺成为首要任务。
  3. 现在创建一个新分支并切换到这个新创建的分支并将其推送到git。
  4. 现在创建一个 PR 以从这个新创建的分支掌握。