将提交的文件恢复到它们在 master 中的版本?

Revert committed files to their version in master?

我修改了一些文件并提交了我的更改。

我注意到有 3 个文件我不应该修改,我希望它们恢复到 master 中的状态,但我不想重置为之前的提交,因为我不希望我的其他文件更改丢失。我该如何实现?

如果你还没有推送那么你的提交现在只是本地的,一个简单的过程是

# restore these 3 files to their previous state
git checkout HEAD^ -- path/to/file1 path/to/file2 path/to/file3

# include these changes...
git add path/to/file1 path/to/file2 path/to/file3

# ... in last commit
git commit --amend

但是,如果您已经推送,则有 2 种基本情况:

1) 要么你单独处理这个 repo,要么共享 repo 但单独处理这个分支(功能分支通常是这种情况,但取决于你的工作流程)

以上过程没问题,只是要注意,下次你想推送到远程时,你必须在你的推送命令中使用 -f 标志来强制更新旧参考

2) 这是一个共享分支,它的历史不能被更改而不会有一些麻烦

那么上面这个改写历史的过程,就是要避免的。相反,您只需要在末尾省略 --amend 参数,它就会生成一个新的提交,其中只包含您文件的最后一次修改。不如一开始就提交它那么优雅,但你没有改变历史,你的文件也很好。