基本上我使用Github revert button将功能分支的先前公关恢复为master
,然后我决定合并相同的功能分支我早些回复了,但我无法这样做。步骤如下:
master
master
)master
。没有什么可比较的。
master是来自feature-branch的所有提交的最新版本。尝试切换基础以进行比较。
有关如何将功能分支再次合并到master
答案 0 :(得分:28)
只需恢复还原。因此,通过单击还原按钮,您将创建一个新PR(您的步骤2)。合并后,您可以选择还原它,这将创建一个包含所有更改的新分支。然后您可以将其拉出,对其进行更改(如果需要)并创建新的PR。您将丢失Github上的所有提交消息,但所有文件更改仍将存在。很高兴参考你的原始分支并在新PR中恢复。
任何可以避免复杂的变形或强迫推动掌握的东西。
答案 1 :(得分:3)
我知道这已经过时了,但是如果有人需要一个好的答案就在这里:
合并PR并删除brach并稍后还原此合并后,您可以创建新分支,然后还原还原。将其推送到远程仓库并创建新的PR。
这将创建一个新的PR,其中一个提交命名为' revert" revert#123 blabla"`以及对diff的所有更改。
https://www.tildedave.com/2012/11/24/reverting-a-github-pull-request.html
答案 2 :(得分:2)
自从我遇到这个问题以来,我就在写这个答案,我发现这里的答案更多是理论性的,而不是实际的。我上网多了一点,找到了解决此问题的方法。您可以在文章here中找到更详细的答案。
要解决此问题,您必须创建一个跟踪主服务器的新分支,并还原还原提交。然后签出功能分支并合并新分支。现在,您可以解决冲突(如果有),提交并创建新的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
答案 3 :(得分:0)
您无法自动合并的原因是因为分支的基础与主分支的HEAD不同步。
恢复还原可能会变得混乱,有时缺乏透明度。
此外,还原恢复将阻止具有此代码的其他分支正确合并。
假设您在master上有特征x并合并到分支y中。然后你决定主人不应该有合并的功能x,因为它取决于分支y。所以,你回归主人。当您尝试合并分支x时,git-merge命令会看到原始合并,并愉快地宣布一切都很好并且分支已经合并,省略了对特征x的这些提交,即使您希望它们与分支y合并。
你应该拔出最新的主人,在master上重新分支你的分支然后你应该能够做另一个拉取请求。
答案 4 :(得分:0)
git fetch
git checkout <name of revert's revert>
您的所有更改都会在那里,当您创建 PR 时,这些更改就会显示出来。
需要说明的是 - 在恢复 PR 上单击“恢复”会给您一个类似 revert-202-revert-201-originalbranchname
的名称。这是您要编辑的分支!
答案 5 :(得分:0)
这就是我所做的。
检查您的功能分支
使用您的基本分支重新设置基础: 这将使您的功能分支进入 Base 分支的状态,因为您的功能分支提交已经是基础分支的一部分。您的功能分支提交将在您的恢复 PR 提交下方对齐。
然后恢复恢复 PR 的提交。这将使您的功能分支恢复到其原始状态,但现在有了新的提交。
推送到功能分支,然后提出 PR。
为什么会这样? 通过变基,您可以使您的功能分支与基础分支同步,即使其与基础提交相同的提交 - 需要在基础之前移动并获得将您的更改恢复到您的功能分支的提交
通过恢复,您可以撤消删除您的更改的更改,现在您的更改可以成为基础分支的新提交 AHEAD 的一部分。