我对文件进行了一些更改,但没有git add .
如何将更改恢复为上次提交?
我不想放弃我的项目
答案 0 :(得分:1)
git reset --hard
将放弃对工作目录和索引中所有跟踪的文件的更改,同时还原这两个文件以匹配当前检出的提交的状态。
git checkout PATH
会将文件PATH
从索引复制到工作目录,如果尚未将更改后的版本添加到索引,则是将本地更改还原到单个文件的合适方法与git add
。如果您已完成git add
,则可以使用git checkout HEAD -- PATH
(仅将PATH
替换为相关文件的路径)从当前签出的提交中复制该文件,而不是索引。
git clean -fd
将从您的工作目录中删除(未忽略)未跟踪的文件。
您可以合并reset
和clean
以完全删除所有本地更改,将工作目录的状态恢复到当前已检出的提交中的状态,包括删除所有未跟踪的文件,即使您添加到.gitignore
的内容也是如此:git reset --hard && git clean -fdx
。
答案 1 :(得分:1)
使用git log --follow [file]
查找所需文件的版本(显示您的提交)。找到所需的提交,并使用git reset --hard [commmit]
在指定的提交后丢弃所有历史记录。