我对存储库中的特定文件进行了一些更改,并提交了这些更改。全部在一次提交下。
在那次提交中,我还对其他几个文件进行了更改。如何取消我对一个特定文件所做的更改,而不是在提交中更改的所有文件?
答案 0 :(得分:14)
Unstage在这里并不是一个正确的词 - 它指的是从索引(暂存区域)中删除更改,暗示它们尚未提交。
由于您的更改已提交,因此您要问的方法是检查上一次提交中的文件版本:
git checkout HEAD^ path/to/file
HEAD
是当前提交,HEAD^
是HEAD
的第一个父级。
答案 1 :(得分:7)
如果您尚未将提交推送到任何地方:
$ git checkout HEAD^ path/to/revert
这将恢复您希望恢复到之前提交时所处状态的路径。 (它将还原您在上次提交时所做的任何更改。)
索引也会更新,所以现在你只需要修改你的提交:
$ git commit --amend