执行git还原的步骤
我需要返回到一个良好的配置,这意味着返回过去的几次提交和1次合并 有人能确认正确的步骤吗?或者让我知道这是否是正确的过程执行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位于当前头部下方
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