git 命令清除未跟踪的文件并恢复整个工作树中修改的文件
git command to clean untracked files and revert modified files in the entire working tree
我正在尝试清除整个树中存在的所有未跟踪文件和修改过的文件。
例如:- dir/sub_dir/end
是一个工作树。 cwd 是 end
当我在工作树中执行 git status -su
时 returns all the modified and untracked files
。
git status -su
M ../rahul.txt
?? nuke1.txt
现在,当我位于树的顶部时 i.e. dir directory
我想删除未跟踪的文件。
我做了 git clean -f
但文件 nuke1.txt
没有被清理。
所以,
- 如何从树的顶部递归清理文件?
- 如何从最内层目录或树中的任何目录递归清除所有未跟踪的文件?
- 如何将所有修改后的文件检出到原始状态?
从树的顶部递归清理文件:
排除被忽略的文件:git clean -df
包括被忽略的文件:git clean -dfx
重要说明:我强烈建议您在 运行 执行命令之前使用 -n
标记干 运行以上
-
[git clean] Cleans the working tree by recursively removing files that are not
under version control, starting from the current directory.
所以基本上与 1 相同的答案。
要将 所有 文件检出到原始状态,您可以 运行 git reset --hard
。但是,您应该非常谨慎地使用此命令,因为它是不可逆的,即您将丢失所有更改。
作为额外的提示,我强烈建议您阅读以下精彩文章,这些文章将为您提供有关这些命令及其使用方法的一些解释:
- Undoing Changes(来自 atlassian)
- Reset, Checkout, and Revert(同样来自 atlassian)
- Reset Demystified(来自git-scm)
我正在尝试清除整个树中存在的所有未跟踪文件和修改过的文件。
例如:- dir/sub_dir/end
是一个工作树。 cwd 是 end
当我在工作树中执行 git status -su
时 returns all the modified and untracked files
。
git status -su
M ../rahul.txt
?? nuke1.txt
现在,当我位于树的顶部时 i.e. dir directory
我想删除未跟踪的文件。
我做了 git clean -f
但文件 nuke1.txt
没有被清理。
所以,
- 如何从树的顶部递归清理文件?
- 如何从最内层目录或树中的任何目录递归清除所有未跟踪的文件?
- 如何将所有修改后的文件检出到原始状态?
从树的顶部递归清理文件:
排除被忽略的文件:
git clean -df
包括被忽略的文件:git clean -dfx
重要说明:我强烈建议您在 运行 执行命令之前使用
-n
标记干 运行以上-
[git clean] Cleans the working tree by recursively removing files that are not under version control, starting from the current directory.
所以基本上与 1 相同的答案。
要将 所有 文件检出到原始状态,您可以 运行
git reset --hard
。但是,您应该非常谨慎地使用此命令,因为它是不可逆的,即您将丢失所有更改。
作为额外的提示,我强烈建议您阅读以下精彩文章,这些文章将为您提供有关这些命令及其使用方法的一些解释:
- Undoing Changes(来自 atlassian)
- Reset, Checkout, and Revert(同样来自 atlassian)
- Reset Demystified(来自git-scm)