Git 如何将推送的提交恢复为未老化?

Git 如何将推送的提交恢复为未老化?,git,commit,revert,unstage,Git,Commit,Revert,Unstage,我试图寻找这个问题的答案,但没有找到任何与这个问题匹配的答案。如果已经有答案,请随时联系我 我所做的是一次提交并推送大量更改。但我并没有把那个推进合并到master中。现在,我想回到暂存任何内容之前的状态,以便将更改暂存到单独的提交中 我曾尝试使用推送的更改创建一个新分支(保存的工作),删除原始远程分支(用户登录),然后将新分支合并到原始本地分支,但这只会让我回到现在的位置,用户登录分支不包含任何要添加/提交的内容 那么,我如何取回所有这些更改,以便我可以单独查看和分期(使用git add-p)

我试图寻找这个问题的答案,但没有找到任何与这个问题匹配的答案。如果已经有答案,请随时联系我

我所做的是一次提交并推送大量更改。但我并没有把那个推进合并到master中。现在,我想回到暂存任何内容之前的状态,以便将更改暂存到单独的提交中

我曾尝试使用推送的更改创建一个新分支(保存的工作),删除原始远程分支(用户登录),然后将新分支合并到原始本地分支,但这只会让我回到现在的位置,用户登录分支不包含任何要添加/提交的内容

那么,我如何取回所有这些更改,以便我可以单独查看和分期(使用git add-p)?

git reset--soft HEAD~1
在分期中获取所有
HEAD
更改

$> man git-reset
   ...
   git reset [<mode>] [<commit>]
   ...
       --soft
           Does not touch the index file nor the working tree at all (but
           resets the head to <commit>, just like all modes do). This leaves
           all your changed files "Changes to be committed", as git status
           would put it.
$>手动git重置
...
git重置[][]
...
--柔软的
根本不接触索引文件或工作树(但
将头部重置为(与所有模式一样)。这只剩下
所有更改的文件“要提交的更改”,如git状态
我会说。

如果这是一个共享存储库,并且有可能有人已经删除了您的提交,那么不要尝试修改您的历史记录。如果其他人已经撤销了您的提交,那么您将在一场失败的战斗中协调对您的错误分支所做的任何其他提交

如果不是这样,那么您需要使用
-f
执行重置、重定基址和推送的组合

例如,您可以使用所讨论的分支上的
git reset--soft
进行重置。这会将分支的头重置为此提交,同时保留所有后续提交的未状态。然后可以运行
git add-p
,有选择地一点一点地重新设置更改


一旦您对分支满意,就可以使用
gitpush-f
进行推送。这将强制覆盖远程设备上的历史记录,但无法删除任何其他人可能已提取的历史记录。

谢谢!这使他们回到了舞台,所以我只是做了git重置头部。把一切都拆开。是的,这是我自己的回购协议,没有被分享。我做了上面的回答,使用了
git reset--soft HEAD~1
然后
git reset HEAD.
。但是现在我从您的回答中看到,
git reset--soft HEAD~2
可以在一个命令中完成这两个命令。谢谢