我對存儲庫中的特定文件進行了一些更改並提交了這些更改。所有在一個承諾之下。將Git中的更改卸載到特定文件中
在那一個提交中,我還對其他幾個文件進行了更改。我如何取消我對一個特定文件所做的更改,而不是所有在提交中更改的文件?
我對存儲庫中的特定文件進行了一些更改並提交了這些更改。所有在一個承諾之下。將Git中的更改卸載到特定文件中
在那一個提交中,我還對其他幾個文件進行了更改。我如何取消我對一個特定文件所做的更改,而不是所有在提交中更改的文件?
Unstage是不完全正確的這裏的詞 - 指的是從索引(暫存區)中刪除更改,暗示它們尚未提交。
由於您的修改已經提交,你會問如何做的是從以前的簽出文件的版本提交:
git checkout HEAD^ path/to/file
HEAD
是當前提交和HEAD^
是第一HEAD
的父項。
如果您還沒有任何地方推提交:
$ git checkout HEAD^ path/to/revert
這將恢復你想恢復到它在作爲事先提交狀態的路徑。 (這將恢復在過去所做的任何更改提交你做。)
該指數也將被更新,所以現在你只需要修改你的承諾:
$ git commit --amend
如果有人真的在尋找如何「撤銷添加」,並且不會丟失對該文件所做的本地更改,那麼「git reset HEAD path/to/file.ext」是要做的事情。 「git checkout」實際上會刪除你對本地最後一次提交狀態的未經改動的更改。 – 2011-02-09 08:27:42