gpt4 book ai didi

git - 撤消 "Reverting a pull request"

转载 作者:行者123 更新时间:2023-12-04 14:22:39 27 4
gpt4 key购买 nike

我在 Github 上 merge 了一个 PR,不得不还原,所以我使用 Github 界面上的还原按钮来完成。
一个新的 PR 是从与恢复的分支相同的分支创建的,但添加了一些内容。当我 merge 新 PR 时,旧 PR 的一些更改部分丢失了。

请注意,在还原后添加了一些提交

我正在考虑使用 Github UI 再次还原以前的还原,但我不确定这会做什么,找不到任何与此相关的文档。

我很想知道为什么代码会丢失以及如何避免这种情况。另外,解决此问题的最佳方法是什么,再次使用还原选项?

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已经不在了!如果您提出 pull 请求,则不包括在内。如果您希望将其包含在内,您有两个选择:
  • 您可以还原还原。 git revert 8998将摆脱还原,您将恢复原始更改(其中有错误)。然后,修复另一个提​​交中的错误并执行您的 pull 请求。
  • 您可以重置还原。 git reset 39f5将回到提交 39f5 ,并“删除”还原。它将不再在您的历史记录中,因此 39f5 中的所有更改将在那里。再次,修复另一个提​​交中的错误并执行 pull 请求。

  • 如果您是 git 新手,我推荐选项 1,因为它更宽容 - 更改保留在您的历史记录中,如果您搞砸了,您可以返回它们。当你对 git 有更多的经验时,你就会知道选项 1 和选项 2 之间哪个更合适,并且可以多玩一点。

    关于git - 撤消 "Reverting a pull request",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52366893/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com