未跟踪的文件会把你的Git工作树弄得乱七八糟。有时,这些未跟踪的文件可能是文本或其他您不想在远程存储库中使用的文件,也可能是在转移提交后以某种方式错误创建的文件。
不管是什么情况,清理Git工作树来删除这些文件总是有帮助的。
如果您更新了项目中的一些现有文件,并且在本地添加了新文件,并且希望将更新推送到GitHub上的远程存储库,Git要求您将这些更改阶段化以提交。
仅对已提交的现有文件进行更新并不能将其从跟踪文件中删除。
当您为提交阶段更新时,新文件也会被暂存,Git将它们添加到跟踪文件中。但是,在提交阶段之后添加到项目中的新文件不会被跟踪。
这些文件可以是不重要的,也可以是临时使用的遗留文件,也可以是合并或推动某些更改后以某种方式出现的文件。因此,这些未跟踪的文件仍然隐藏在您的工作树中,当您运行git status时,git将它们作为未跟踪文件返回。
您可以通过清理Git工作树来删除这些文件。否则,如果您仍然认为在本地需要它们,可以将它们添加到.gitignore文件中。添加到.gitignore的文件不会受到清理的影响,如果您决定包含这些文件,则不会受到影响。
清理Git就像本地或远程删除Git分支一样简单。下面让我们看看清理Git以删除未跟踪文件或文件夹的各种方法。
在删除未跟踪的文件之前,应该仔细检查以确保要删除它们。为此,请运行以下代码:
git clean -d -n该命令返回Git将从工作树中删除的所有未跟踪文件夹和文件。
要删除这些文件和目录,请运行:
git clean -d -f要仅删除文件而不删除文件夹,请使用:
git clean -f尽管上述方法不会删除.gitinore中列出的文件,但您也可以使用下面的命令清除.gitinore文件中列出的项目:
git clean -fx要仅删除忽略的文件而不包括其他文件,请将小写“x”更改为大写“x”:
git clean -fX要检查工作树中是否仍有未分级的文件,请运行以下命令:
git status您还可以通过以下方式交互清理Git:
git clean -i要在交互式清理模式下将文件包含在.gitignore中,请使用:
git clean -ix要仅使用交互模式清除.gitignore中列出的文件,请运行以下命令。确保这次使用大写“X”:
git clean -ifX一旦进入交互模式,就可以选择按数字或字符串模式过滤文件。您还可以选择ask if选项,在删除每个文件之前对其进行双重检查。如果愿意,可以选择“清除”选项直接删除文件。
运行git status会提供当前的暂存信息,如果有任何未暂存的文件或文件夹,它也会让您知道。
但是,在检查Git状态之后,如果以前删除的文件仍然显示在untracked files部分下,那么应该清除Git缓存。然后再次运行git clean删除文件。
相关:如何使用GitHub桌面克隆存储库
清除Git缓存:
git rm -r --cached [filename]如果清理Git后仍有多个文件出现,请使用以下命令清除每个文件的Git缓存:
git rm -r --cached [filename1] [filename2] [filename3]...但是,请确保为每个文件添加了文件扩展名,并记住再次清除Git以删除它们。
有时候,你想在下一次离开一个项目之前把Git工作树中的东西整理一下。然后,您可能会推送或合并您对项目所做的最后更改,以确保您可以从下次停止的地方完全恢复。
但是,在推送或合并时,存储库中不需要的某些文件可能会错误地登录。
如果未能检查并删除这些文件,可能会破坏远程存储库,因为在下次更新远程存储库时会推送这些文件。除此之外,当部署到像Heroku这样使用git进行部署的平台时,这些文件可能会破坏一些东西。
所以:保持你的**干净!
... 在下面的小节中,我们将为一个非常重要的项目逐一介绍这些步骤:本文。我们将使用Git的命令行版本来实现这一点。了解终端命令可以很容易地找到它们的GUI等价物,并保证您可以在每个平台上使用它。 ...
... 下面是你现在应该考虑复印的五份。(恢复受感染的计算机并不是livecd和USB驱动器的唯一好处!) ...
...ffice文件、Java存档、ZIP、XML、PDF等。说到这里,我们已经介绍了如何使用其他方法比较两个Excel文件。 ...
...决方案,为电脑深层清洁是一个更好的和更方便的选择。下面是PrivaZer如何帮助你的。 ...
Git最强大的特性之一是它的轻量级分支。它们允许您高效地处理并行的开发阶段。开发人员甚至可以为单独的bug创建单独的分支。在时间和空间上,分支几乎都是免费的。 ...
...。因此,您必须使用Yay包管理器的Git存储库手动安装它。下面是如何在您的系统上安装它。 ...