如何从旧提交中还原文件?

  • 本文关键字:还原 文件 提交 git
  • 更新时间 :
  • 英文 :


我提交了一段我不应该提交的代码。(谢天谢地不在主分支上(

该文件进行了更改,以便在依赖系统关闭时使用临时解决方法,因此我可以继续开发手头的任务。系统修复后,我删除了解决方法。

问题是我在该文件上提交了此更改,当我意识到我这样做时,它就像 5 次提交之后。

无论如何,我可以从提交中删除该更改的列表,因此它不会出现在拉取请求下。

当然....假设您在 my-branch~5 上添加了该文件。那么这就是你可以做的:

git checkout my-branch~5
git rm --cached the-file.txt # remove for git only, keep file on working tree
git commit --amend --no-edit # create new revision without the file
git cherry-pick my-branch~5..my-branch # replay old branch history
git branch -f my-branch # set my-branch where I am right now
git checkout my-branch # check it out so I can continue working

问题是提交历史还是提交代码?

我不知道您是否可以删除提交历史记录。如果可以的话,我实际上不会建议。但您可以:

  • 撤销您的提交。
  • 或者干脆再次提交文件而不进行更改。

任何更改都将在您的 PR 中自动考虑。

最新更新