如何从旧提交还原文件?

时间:2018-09-28 16:18:14

标签: git

我提交了一段我本不想提交的代码。 (非常感谢不在主分支上)

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

问题是我在该文件上进行了此更改,而当我意识到我确实做到了以后再进行5次提交。

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

2 个答案:

答案 0 :(得分:2)

当然。...假设您将文件添加到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

答案 1 :(得分:0)

问题是提交历史记录还是提交的代码?

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

  • 撤消您的提交。
  • 或者直接提交文件而不进行任何更改。

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