Git 撤销;“恢复拉取请求”;
我在Github上合并了一个PR,并且必须将其还原,所以我使用Github界面上的revert按钮来执行此操作。 一个新的公关是从相同的分支恢复了一个作出,但有一些补充。当我合并新PR时,旧PR的某些更改部分丢失 请注意,在恢复之后添加了一些提交 我正在考虑使用Github UI再次恢复以前的恢复,但我不确定这将做什么,找不到任何与此相关的文档 我很想知道为什么代码会丢失,以及如何避免这种情况。另外,解决此问题的最佳方法是什么,再次使用“还原”选项Git 撤销;“恢复拉取请求”;,git,github,Git,Github,我在Github上合并了一个PR,并且必须将其还原,所以我使用Github界面上的revert按钮来执行此操作。 一个新的公关是从相同的分支恢复了一个作出,但有一些补充。当我合并新PR时,旧PR的某些更改部分丢失 请注意,在恢复之后添加了一些提交 我正在考虑使用Github UI再次恢复以前的恢复,但我不确定这将做什么,找不到任何与此相关的文档 我很想知道为什么代码会丢失,以及如何避免这种情况。另外,解决此问题的最佳方法是什么,再次使用“还原”选项 ed3240aa (HEAD -> ve
ed3240aa (HEAD -> version/2, origin/version/2) Merge branch 'version/2' of github.com:umbrella/app into version/2
8d7b6a8f Bump version of app
8b268172 Fix error in condition for disavowing excluded alerts
a12eca40 Point app to staging
5c83c0bb Merge pull request #1090 from umbrella/revert-1088-add-sentiment // Merge PR with reversion
3ab766fc Revert "Add sentiment insight" // Revert happened here
132a9e64 Merge pull request #1089 from umbrella/nana_sources
acaec5e0 Merge branch 'version/2' into nana_sources
881925d7 - finished showing the dimension sources
df0b0ead Merge pull request #1088 from umbrella/add-sentiment
5bc3165d Merge pull request #1087 from umbrella/sync-exclude
c6936a2e (origin/sync-exclude, sync-exclude) Remove spurious logs
当您恢复时,git会创建一个新的提交,其中包含恢复的提交的“反面”。例如,假设您执行了一个
git revert 39f5
,那么您有:
* 8998 (HEAD -> master) Revert "Do stuff that is needed"
* 39f5 Do stuff that is needed
* 8573 First commit
8998
commit是恢复,但它仍然是正常的提交。它只包含与39f5
相反的“反面”。这与手动取消所有更改是一样的
因此,如果您继续工作,则39f7
中的所有工作将不再存在!如果您提出拉动请求,则不包括在内。如果您希望将其包括在内,您有两个选择:
GitRevert 8998
将消除恢复,您将恢复原来的更改(其中包含bug)。然后,修复另一个提交中的bug并执行拉请求git reset 39f5
将返回提交39f5
,并“擦除”还原。它将不再出现在您的历史记录中,因此39f5
中的所有更改都将出现。同样,修复另一个提交中的bug并执行pull请求如果您是git新手,我建议您选择选项1,因为它更宽容——更改仍保留在您的历史记录中,如果您搞砸了,您可以返回到它们。当您对git有更多的经验时,您将知道选项1和选项2之间什么更合适,并且可以更多地使用它。我的猜测是git将新的pull请求识别为与前一个请求相同(或类似),这就是某些更改无法通过的原因。我没有解决这个问题的办法。如果这只是在本地发生,我建议取消错误的合并提交,然后重新进行。