在远程恢复旧提交而不跟踪本地提交

时间:2017-11-30 19:21:39

标签: git

我找到了恢复远程here中旧提交的说明。

以下是步骤:

  

1。)找到最后一次提交的id(SHA哈希),这是你想成为HEAD的提交

     

2。)在使用以下命令提交的本地repo fetch中    git fetch origin:refs / remotes / origin /

     

3。)如果您有未被推送的本地提交,请创建一个本地分支以保留它们:   git branch -b

     

4.)返回原始分支   git checkout

     

5.。)将分支重置为步骤1中找到的良好提交:   git reset --hard

     

6.。)将您的重置仓库推送到远程(需要强制更新):    git push -f origin

     

7。)合并你在第3步中隐藏在分支中的提交:    git merge

我的问题是,如果我想跳过第3步,我还应该跳过第4步和第7步吧?然后我将失去我在本地提交的本地更改。对?

由于

1 个答案:

答案 0 :(得分:2)

正确,如果您没有任何保存工作,那么您不需要在步骤3中创建单独的分支。

这将使第4步不相关,因为您已经在原始分支上。

步骤7也不相关,因为没有未完成的提交要合并。

另外值得注意的是,如果你确实有一些未完成的提交,你不会通过跳过第3步来“丢失”它们。如果由于某种原因你确实需要让它们恢复,你可以从Git的{{{ 3}}