将Git中的更改停止到特定文件

Ale*_*lex 5 git

我对存储库中的特定文件进行了一些更改,并提交了这些更改.全部在一次提交下.

在那次提交中,我还对其他几个文件进行了更改.如何取消对我对该特定文件所做的更改,而不是所有在提交中更改的文件?

Cas*_*bel 14

Unstage在这里不是正确的词 - 它指的是从索引(暂存区域)中删除更改,暗示它们尚未提交.

由于您的更改已提交,因此您要问的方法是检查上一次提交中的文件版本:

git checkout HEAD^ path/to/file
Run Code Online (Sandbox Code Playgroud)

HEAD是当前的提交,并且HEAD^是第一个父级HEAD.


cdh*_*wie 7

如果您尚未将提交推送到任何地方:

$ git checkout HEAD^ path/to/revert
Run Code Online (Sandbox Code Playgroud)

这将恢复您希望恢复到之前提交时所处状态的路径.(它将还原您在上次提交时所做的任何更改.)

索引也将更新,所以现在你只需要修改你的提交:

$ git commit --amend
Run Code Online (Sandbox Code Playgroud)