Git 吉特。。。恢复

Git 吉特。。。恢复,git,Git,在我的东西已经被推送和部署之后,我必须恢复到先前的提交 我用过git收银台^ 检查一下,但是现在怎么推呢?上面说分支是最新的 非常感谢您的帮助!“您必须首先提交更改 此外,如果您只想还原单个提交,可以使用git revert而不是git checkout 如果您只做了git签出头^,那么无论如何都不会提交任何内容;您将处于“分离的分支”上。如果您做了类似于git签出头^-.的操作,那么您必须在推送之前提交阶段性更改。您必须首先提交更改 此外,如果您只想还原单个提交,可以使用git revert

在我的东西已经被推送和部署之后,我必须恢复到先前的提交

我用过git收银台^

检查一下,但是现在怎么推呢?上面说分支是最新的


非常感谢您的帮助!“

您必须首先提交更改

此外,如果您只想还原单个提交,可以使用
git revert
而不是
git checkout



如果您只做了
git签出头^
,那么无论如何都不会提交任何内容;您将处于“分离的分支”上。如果您做了类似于
git签出头^-.
的操作,那么您必须在推送之前提交阶段性更改。

您必须首先提交更改

此外,如果您只想还原单个提交,可以使用
git revert
而不是
git checkout



如果您只是执行了git checkout HEAD ^,那么无论如何都不会提交任何内容;您将处于“分离的分支”上“。您可以使用git revert HEAD还原错误的提交。这将生成一个新的提交,该提交将撤消以前的提交。然后,您可以像其他提交一样推送它

如果希望历史记录显示提交从未存在,可以使用git reset--hard HEAD^删除提交。(请注意,这将放弃您对工作目录所做的任何更改。然后,您可以使用
-f
标志强制将提交从远程存储库中删除。请注意,执行此操作时,如果其他人已获取您删除的提交,则可能会遇到问题。更重要的是,如果自您的提交后有人推送了任何内容,则可能会遇到问题。)t、 这些提交将丢失。如果您不确定是否有其他人访问过回购,那么第一个选项是最安全的

编辑


正如Jefromi提到的,在执行上述任一操作之前,您需要检查正在处理的分支,否则将导致其他问题。

您有两个选择。您可以使用
git revert HEAD
还原错误的提交。这将生成一个新的提交,该提交将撤消以前的提交。然后,您可以像使用任何其他承诺

git checkout
如果希望历史记录显示提交从未存在,可以使用git reset--hard HEAD^删除提交。(请注意,这将放弃您对工作目录所做的任何更改。然后,您可以使用
-f
标志强制将提交从远程存储库中删除。请注意,执行此操作时,如果其他人已获取您删除的提交,则可能会遇到问题。更重要的是,如果自您的提交后有人推送了任何内容,则可能会遇到问题。)t、 这些提交将丢失。如果您不确定是否有其他人访问过回购,那么第一个选项是最安全的

编辑

正如Jefromi提到的,在执行上述任一操作之前,您需要先查看您正在处理的分支,否则会导致其他问题

git checkout
只需签出旧版本。它不会真正改变任何东西。 因此,要恢复提交,您需要提交一个相反的更改

git revert *commit-id*
因此,要还原上一个提交类型

git revert HEAD
但您不能以这种方式还原合并提交。为此,您需要指定要还原到的父级。此命令可以查看父级列表

git cat-file -p HEAD
确定所需提交的次数(第一次或第二次),然后运行

git revert -m 1 HEAD

只需签出旧版本。它不会真正改变任何东西。 因此,要恢复提交,您需要提交一个相反的更改

git revert *commit-id*
因此,要还原上一个提交类型

git revert HEAD
但您不能以这种方式还原合并提交。为此,您需要指定要还原到的父级。此命令可以查看父级列表

git cat-file -p HEAD
确定所需提交的次数(第一次或第二次),然后运行

git revert -m 1 HEAD


我对重复问题的回答可能会重复,这会对您有所帮助。如果您选择修改历史记录(例如,使用git reset--hard HEAD^从历史记录中删除提交),您随后需要推送您需要使用
git push-f
,注意它会干扰其他从公共回购中提取的人。我对重复问题的回答可能会对您有所帮助。如果您选择修改历史记录(例如,使用
git reset--hard HEAD^
从历史记录中删除提交),您随后需要推送你需要使用
git push-f
,注意它会干扰其他从公共回购中撤出的人。如果OP使用
git checkout HEAD^
,就没有什么可提交的。@MichaelMior:是的。我想OP做了类似于
git checkout HEAD^-.
,但可能不是这样。是的,确实是这样没什么好担心的commit@Alex:这将还原标头的父级提交。如果要还原到标头提交之前的状态(即标头的父级),那么你应该做
git revert HEAD
。如果OP使用了
git checkout HEAD^
,那么就没有什么要提交的了。@MichaelMior:是的。我想OP做了类似于
git checkout HEAD^-.
,但可能不是这样。是的,它确实说没有什么要提交的commit@Alex:这将还原HEAD的父公司mmit。如果要恢复到头提交之前的状态(即,头的父级),然后您应该执行
git revert HEAD
。请注意,在还原或重置之前,OP需要
git checkout
,因为在运行
git checkout HEAD ^
之后,没有分支被签出。这个答案和注释是最正确的。一旦您推到中央存储库,编辑历史记录就不是一个好的选择没关系