即使我 git 在提交之前添加了所有文件,我是否可以仅恢复到一个文件的先前版本?

Can I revert to a previous version of just one file even if I git added all files before a commit?

即使我 git 在提交之前添加了所有文件,我是否可以只恢复到一个文件的先前版本?

所以,这就是我所做的: git add . 然后 git commit -m "my changes" 然后 git push

因此还有许多其他 git 添加。并在 "my changes" 和当前头之间提交。

即使我 git 添加了多个文件 (git add .),是否可以仅将一个文件恢复到 "my changes" 状态?

你问题中的全部担忧都是基于对 Git 是什么的完全误解。

每个 提交包含所有 个文件。它们都是整个项目的快照。 git add 只是告诉 Git 下一次提交时要特别注意工作树中的哪些文件,但是您是否通过在 之前说 git add 或不明确地包含文件特定 提交,如果该文件在先前 提交中,则它在之后的每个 提交中。

所以你说的git add .完全没有任何意义。

问题变得很简单,您是否可以恢复文件的状态。答案当然是肯定的;每个提交都包含所有文件,所以只需找到您喜欢该特定文件状态的提交并提取它:

git restore --source=<thatCommitSHA> -- thatFile

现在 git add 该文件(以及您喜欢的任何其他文件)并提交。