Git 如何一次性恢复多个pull请求合并并保留历史记录

Git 如何一次性恢复多个pull请求合并并保留历史记录,git,github,merge,pull-request,revert,Git,Github,Merge,Pull Request,Revert,我有一个案例,Github repo主机当前有一系列单独的pull请求,这些请求已经合并到主机中。我想说最后20个拉请求合并,但从命令行执行并保留历史记录 类似的问题被标记为重复问题 然而,已经给出的答案并没有真正解决当您想要恢复的所有内容都来自一系列都是合并的pull请求时会发生什么的具体问题。在git revert中使用-m选项可以同时进行一次合并,对吗?因此,我认为答案是没有一个好方法(从命令行)来快速恢复一系列已合并的单个拉请求并保留历史?如果我错了,请纠正我。如果我必须一次做一个,我也

我有一个案例,Github repo主机当前有一系列单独的pull请求,这些请求已经合并到主机中。我想说最后20个拉请求合并,但从命令行执行并保留历史记录

类似的问题被标记为重复问题


然而,已经给出的答案并没有真正解决当您想要恢复的所有内容都来自一系列都是合并的pull请求时会发生什么的具体问题。在git revert中使用-m选项可以同时进行一次合并,对吗?因此,我认为答案是没有一个好方法(从命令行)来快速恢复一系列已合并的单个拉请求并保留历史?如果我错了,请纠正我。如果我必须一次做一个,我也可以使用Github控制台并为每个控制台单击revert

如果您希望有一个(以后的)修订版,在该修订版中恢复所有合并的更改,您可以这样做:

git checkout <id-of-revision> # use the ID of the revision you would like to get your project back to (in terms of content)
git reset --soft <the-branch> # the branch where we want to add a revision to revert all of that
git commit -m "Reverting"
# If you like the results
git branch -f <the-branch> # move branch pointer to this new revision
git checkout <the-branch>
git checkout#使用您想让项目返回的修订版本的ID(在内容方面)
git reset--soft#我们希望在其中添加修订以恢复所有这些内容的分支
git提交-m“恢复”
#如果你喜欢结果的话
git branch-f#将分支指针移动到此新版本
git签出
Step1 首先创建一个新的备份分支并将其放在一边。(后备科) 从master或dev创建一个新分支,无论您想在何处恢复。(工作分支)

git恢复承诺1

git恢复委员会2

git恢复委员会3
。。。。 这是最好的选择

不要执行git重置--hard commitid它会使你的索引变得混乱。 恢复是安全的选择

我已经做了180次了。 步骤二
git日志-180--格式=%H--无合并
使用此命令单独打印所有提交ID

它将忽略合并提交id

commitd1 commitd2 commitd3…..
它将这样打印

将其复制到升华ctrl+a->ctrl+alt+l add

git revert--无提交提交1

git revert--无提交提交2

git revert--无提交提交3

在命令提示下复制全部并粘贴。您的所有提交都将被还原。现在执行git提交

然后做git推。 创建一个主服务器的合并请求

步骤三 如何验证?

创建新分支(验证分支)

您可以通过执行

git重置-硬commitix
。这是您需要还原到的提交id

git status
它将提供主机后面的提交次数

git推送-f


现在,通过在这两个分支之间创建一个pull请求,将其与您的工作分支进行比较。您将不会看到任何更改,这意味着您的工作分支已成功恢复到您要查找的版本。

否。。。。该分支是您正在处理的任何分支。主人?发展还有别的吗?好的。所以对于我的应用程序,我使用master for,然后在上面的最后一行之后,我做了一个
git checkout-b功能/new master
,然后我可以将它推送到远程,并为它创建一个pull请求。这正是我想要的。