Git 我如何获得 git 重置 --很难工作?



我已经对一个分支进行了几次提交,但想恢复到特定的提交。

我使用git log来查找提交 ID,然后使用git reset --hard <commit id>但没有任何反应。然后,当我尝试推送到 Github 时,我会收到一条non-fast-forward消息。

有人知道我应该做什么吗?

执行硬重置后,工作树和索引现在处于执行重置的提交状态。下次创建任何提交时,您将拥有存储库(以及您正在处理的分支(的新、不同的历史记录。

要解决此问题,请在推送到 Github 时使用--force;这将表明您承认,通过将新的重写历史记录强行推送到存储库,您将丢失历史记录。

警告:一般来说,--force是危险的,特别是如果你不确定你是如何达到需要它的状态的。通常无法轻松撤消错误的强制推送。也就是说,如果您尝试清除的提交具有敏感内容,例如 API 密钥、密码等,我不确定这是否保证提交将被不可恢复地清除。

根据您的问题和评论,据我所知,您在一个分支上进行了三次提交,并将该分支推送到远程。 现在您想从远程和本地分支中删除这 3 个提交。

我不确定您已经尝试了哪些选项以及本地分支的当前状态如何,因此首先,我将分支与远程同步,然后删除前 3 个提交,然后将它们推送到远程。

我假设您的分支名称xyzxyz替换为您的分支名称。

请按照以下步骤操作:

  1. get fetch origin#to获取远程历史记录
  2. git reset --hard origin/xyz# 与远程同步xyz
  3. git reset --hard HEAD~3# 删除前 3 个提交
  4. git push origin xyz --force-with-lease# 在遥控器上推送您的分支。

相关内容

  • 没有找到相关文章

最新更新