如何还原提交的特定文件?

How can I revert specific files of a commit?

我推送了修改文件 file1、file2、file3、file4、file5 的提交。
我已经确定逻辑是错误的,作为提交的一部分,我修改了 files2、file3 中的一些 API。
我想做的是以某种方式恢复 files2、files3 的本地更改并正确修复其余文件。
因此,开始我的修复时,以 files2、files3 的原始版本为基础,但以最新版本为基础。
我该怎么做?

最简单的方法是软重置您的提交(这将保留文件中的更改但不会提交)。放弃对 files2 和 files 3 的更改(这会将它们设置回之前的提交)。

Git reset documentation

最简单的方法:

# get the version of the file from the given commit
git checkout <commit> path/to/file

以我为例:

git checkout b1cdc80fffe381eb3938e7b7f337d6550ffbd199 /MyProjects/AndroidCameraAPI/app/src/main/java/info/androidhive/androidcameraapi/MainActivity.java

然后修改了我的代码,再次提交。

注意:我在我的示例中使用的提交是稳定版本,我想恢复到该版本。