协慌网

登录 贡献 社区

如何在 Git 中清除本地工作目录?

如何在 Git 中清除我的工作目录?

答案

要将特定文件重置为最后提交状态(以丢弃特定文件中未提交的更改):

git checkout thefiletoreset.txt

git status输出中提到了这一点:

(use "git checkout -- <file>..." to discard changes in working directory)

要将整个存储库重置为最后的提交状态,请执行以下操作:

git reset --hard

要删除未跟踪的文件,我通常只删除工作副本中的所有文件(而不是.git/文件夹!),然后执行git reset --hard ,仅保留已提交的文件。

更好的方法是使用git clean警告:如下使用-x标志将导致 Git 删除忽略的文件):

git clean -d -x -f

将删除未跟踪的文件,包括目录( -d )和 git 忽略的文件( -x )。 -f参数替换为-n以执行试运行,或者将-i替换为交互式模式,它将告诉您将要删除的内容。

相关链接:

用:

git clean -df

它没有很好的广告宣传,但是git clean确实很方便。 Git Ready git clean很好的介绍

到目前为止,所有答案都保留本地提交。如果您真的很认真,可以通过执行以下操作放弃所有本地提交和所有本地编辑:

git reset --hard origin/branchname

例如:

git reset --hard origin/master

这使您的本地存储库与原始状态完全匹配(未跟踪的文件除外)。

如果您只是在读了命令之后而不是在做它之后才不小心:),请使用 git reflog 查找您的旧提交。