【发布时间】:2021-10-20 03:51:56
【问题描述】:
我正在开发一个非常不活跃的功能分支。最近对远程master分支做了一些改动,所以我跑了git checkout master和git pull。然后,我进入我的功能分支并运行 'git rebase master' 并解决了许多合并冲突和 ':qa!'d' 要求提交消息的 vim 会话。
然后我尝试将这个 rebase'd 分支推送到 GitHub,它说我的远程分支与本地分支已过期,所以我用谷歌搜索了这个,所以说首先运行 git pull 'featurebranch',解决合并冲突再次,然后运行 git push 'featurebranch'。
所以我这样做了,我现有的包含 20 次提交的拉取请求突然跃升至 150 多次提交。现在,我真的不知道如何恢复所有这些。如何撤消功能分支 PR 中的变基、合并和 150 多次提交?基本上,就好像过去的几次 git 更改从未发生过一样。
有没有办法做到这一点?
'git reset --hard feature@{24.hours.ago} 会起作用吗?那么如何更新PR呢? How to "time travel" git repository back in revisions?
更新:我运行了 git reflog,在变基之前找到了提交 ID,然后运行了 git reset --hard (ID)。现在我要在实际的功能分支中执行此操作,如何将重置的分支版本推送到我为它打开的 github PR。它会删除从合并/变基中添加的新提交吗?
【问题讨论】: