执行git还原的步骤

执行git还原的步骤,git,github,Git,Github,我需要返回到一个良好的配置,这意味着返回过去的几次提交和1次合并 有人能确认正确的步骤吗?或者让我知道这是否是正确的过程 git checkout master git revert commita, commitb, (merge happened between b&c), commit c git push ? 谢谢如果您只想回到过去的几次提交,那么您只需git reset--hard(如果您这样做,请确保这些更改没有被推送到服务器上) 但是,如果您的提交a、b位于当前头部下方

我需要返回到一个良好的配置,这意味着返回过去的几次提交和1次合并

有人能确认正确的步骤吗?或者让我知道这是否是正确的过程

git checkout master
git revert commita, commitb, (merge happened between b&c), commit c
git push 
?


谢谢

如果您只想回到过去的几次提交,那么您只需
git reset--hard
(如果您这样做,请确保这些更改没有被推送到服务器上)


但是,如果您的提交a、b位于当前头部下方的某个位置,则使用
git revert
,但是当您想要恢复合并提交时,将通过合并两个提交(比如c和d)来进行更改。如果您想还原commit c在分支上所做的更改,那么您必须使用
git revert-m 1

如果您只想返回到您所做的最后几次提交之后,那么您只需
git reset--hard
(如果您这样做,请确保这些更改没有被推送到服务器)


但是,如果您的提交a、b位于当前头部下方的某个位置,则使用
git revert
,但是当您想要恢复合并提交时,将通过合并两个提交(比如c和d)来进行更改。如果您想还原commit c在分支上所做的更改,那么您必须使用
git revert-m 1

如果您只想返回到您所做的最后几次提交之后,那么您只需
git reset--hard
(如果您这样做,请确保这些更改没有被推送到服务器)


但是,如果您的提交a、b位于当前头部下方的某个位置,则使用
git revert
,但是当您想要恢复合并提交时,将通过合并两个提交(比如c和d)来进行更改。如果您想还原commit c在分支上所做的更改,那么您必须使用
git revert-m 1

如果您只想返回到您所做的最后几次提交之后,那么您只需
git reset--hard
(如果您这样做,请确保这些更改没有被推送到服务器)


但是,如果您的提交a、b位于当前头部下方的某个位置,则使用
git revert
,但是当您想要恢复合并提交时,将通过合并两个提交(比如c和d)来进行更改。如果要还原commit c在分支上所做的更改,则必须使用
git revert-m 1

有两个关键问题:

  • 你推动了远程回购吗?下游是否有其他人已经拥有损坏的版本
  • 这些是历史上最后的承诺还是一些承诺
  • 如果你需要备份。(拥有它通常是个好主意。) 仅最后一次提交,包括合并提交,尚未推送,或者没有其他用户下游。 这也有助于:

  • 插图。

  • 有两个关键问题:

  • 你推动了远程回购吗?下游是否有其他人已经拥有损坏的版本
  • 这些是历史上最后的承诺还是一些承诺
  • 如果你需要备份。(拥有它通常是个好主意。) 仅最后一次提交,包括合并提交,尚未推送,或者没有其他用户下游。 这也有助于:

  • 插图。

  • 有两个关键问题:

  • 你推动了远程回购吗?下游是否有其他人已经拥有损坏的版本
  • 这些是历史上最后的承诺还是一些承诺
  • 如果你需要备份。(拥有它通常是个好主意。) 仅最后一次提交,包括合并提交,尚未推送,或者没有其他用户下游。 这也有助于:

  • 插图。

  • 有两个关键问题:

  • 你推动了远程回购吗?下游是否有其他人已经拥有损坏的版本
  • 这些是历史上最后的承诺还是一些承诺
  • 如果你需要备份。(拥有它通常是个好主意。) 仅最后一次提交,包括合并提交,尚未推送,或者没有其他用户下游。 这也有助于:

  • 插图。

  • 为了简单起见,假设您希望进行的提交是“f8dec3”。那么您需要做的最简单的事情是:

    git branch savepoint
    git reset --hard f8dec3
    
    这会将当前分支的状态重置为该特定版本。在此点之前,您将丢失所有提交

    您可以使用
    git log
    命令确定要重置为的提交的id,或者最好使用类似这样的工具,通过可视化图形更容易地推理git更改

    如果您发现有问题,您可以纠正错误:

    git reset --hard savepoint
    
    纠正错误

    有一种很好的恢复硬重置的方法,以防您在使用时出错。只需键入
    git reflog
    ,并记下硬重置之前的提交id。如果您在重置之前忘记保存分支的状态,这一点尤其有用(这实际上已经为我节省了无数次的时间,并且避免了我对使用git命令进行操作感到恐惧)


    如果您的远程跟踪分支有您已从硬重置恢复的提交,则需要使用
    git push-f
    进行强制推送。但是,在执行此操作之前,请仔细考虑您是否正在执行正确的操作。

    为了简单起见,我们假设您希望执行的提交是“f8dec3”。那么您需要做的最简单的事情是:

    git branch savepoint
    git reset --hard f8dec3
    
    这会将当前分支的状态重置为该特定版本。在此点之前,您将丢失所有提交

    您可以使用
    git log
    命令,或者最好使用一种工具(例如,使推理abo)来确定要重置为的提交的id
    git branch savepoint
    git reset --hard f8dec3
    
    git reset --hard savepoint