Git 通过一次提交还原IntelliJ中的多个提交

Git 通过一次提交还原IntelliJ中的多个提交,git,intellij-idea,Git,Intellij Idea,我想还原IntelliJ中超时推送的许多提交,我正在搜索相关问题,但找不到任何问题。理想情况下,我希望历史记录只保留一个将所有内容恢复到de0cbda的提交 在IntelliJ中有什么简单的方法可以做到这一点吗?或者可能通过命令行?如果,如您在我之前的回答中所述,您只想以多次提交的方式恢复对一个文件所做的更改,只需运行: git checkout de0cbda <PATH_TO_FILE> 14是要还原的提交数 如果没有,您可以在git revert命令中列出提交哈希: git

我想还原IntelliJ中超时推送的许多提交,我正在搜索相关问题,但找不到任何问题。理想情况下,我希望历史记录只保留一个将所有内容恢复到de0cbda的提交
在IntelliJ中有什么简单的方法可以做到这一点吗?或者可能通过命令行?

如果,如您在我之前的回答中所述,您只想以多次提交的方式恢复对一个文件所做的更改,只需运行:

git checkout de0cbda <PATH_TO_FILE>
14
是要还原的提交数

如果没有,您可以在
git revert
命令中列出提交哈希:

git revert 1d7e8e5 0d2b8ea ... 39bdd21 de0cbda -n

最后,查看隐藏的更改,如果您对这些更改满意,只需使用
git commit-m“Message”提交即可

de0cbda
9d80426
之间的历史是线性的吗?您可以通过git log--oneline--graph de0cbda..9d80426
检查它。感谢您的回答,我只希望恢复一个文件,这些提交还包括对其他文件的更改。您的问题中没有明确这一点。在这种情况下,最后,在提交之前,对所有不想恢复的文件运行
git checkout--
。这样做有效,但是,历史记录和注释保持不变,有什么方法可以清理它吗?因为您想保留对其他文件的更改,所以不建议重写历史记录(如果要删除文件的更改历史记录,则需要此操作)。这正是还原的目的。我希望将其还原为未更改时的状态,以便下一个家伙看到代码时不要来找我
git revert 1d7e8e5 0d2b8ea ... 39bdd21 de0cbda -n