gpt4 book ai didi

GitHub - 如何将更改恢复到以前的状态

转载 作者:IT王子 更新时间:2023-10-29 00:51:45 25 4
gpt4 key购买 nike

我正在使用 GitHub 作为我的远程存储库。

我已经向服务器推送了 5 次提交,并希望恢复到这些提交之前的状态。

如果提交哈希是 3425661dba2aadccdbab,我如何将整个本地/远程恢复到该提交?我试过了

$ reset --hard 3425661dba2aadccdbab

但这只会将我的工作重心转移到该分支,并需要我再次执行 git pull。我尝试 checkout ,但这导致我进入了一个“独立的负责人”分支。

最佳答案

您基本上有两个选项来恢复更改:

  1. 创建一个应用反向更改的新提交。这是首选选项,因为它不会更改公共(public)存储库中的历史记录
  2. 删除提交并强制推送它们。

第一个选项可以通过使用git revert

来实现

git-revert - Revert some existing commits

Given one or more existing commits, revert the changes that the related patches introduce, and record some new commits that record them.

一个例子是 git revert -n HEAD~5..HEAD。此命令创建 5 个新提交,每个提交都会撤消当前 checkout 分支的最后 5 个提交之一。

第二个选项是实际删除提交。请注意,这会更改存储库中的历史记录。因此,任何已经进行更改的人都可能会感到非常惊讶,事情很快就会变得一团糟。也就是说,你可以做到

git reset --hard HEAD~5
git push --force

第一个命令将删除当前工作副本中所有未提交的更改。并将您的本地存储库重置为当前 HEAD - 5 次提交的状态。第二个命令将强制推送到默认远程(即 GitHub),在那里,与当前本地存储库不同的任何更改都将被覆盖。

再次警告:如果您真的不知道自己在做什么,请不要使用此选项,因为如果操作不当,可能会导致您或其他人的数据丢失。请改用第一个选项,因为它会透明地删除更改,但不会产生重写历史记录的不良副作用。

关于GitHub - 如何将更改恢复到以前的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com