[GIT] 解决:git status时有Untracked files(未跟踪的文件)

目录

1 问题描述

  • git pull时失败,报Please move or remove them before you merge。结果git status显示有一堆不太想提交的Untracked files(未跟踪的文件)。

  • 那么,Untracked files文件状态的文件,是什么?一般又如何处理呢?

2 原因分析

我们要真正弄明白问题的原因,我们就要先知道文件的几个状态。

  • git在未commit之前有三种状态:
  • Untracked files 未跟踪
  • Changes not staged for commit 未提交的更改
  • Changes to be committed 提交的更改

  • Q: 什么文件会是未跟踪的呢?
  • Ans : 那些新创建的从未add过的文件就是未跟踪的。
  • Ans : 此时有几种情况:
情况1 我们创建了准备提交上去的,这种好办只要add了就可以了。———— add 之

情况2 必须放在git工具目录中,但又不能提交的,比如保存了数据库密码的配置文件等的东西。 ———— 忽略之

情况3 我们不准备提交、又确实没啥没用的。————清理之

3 解决方法

按需选择合适的解决方法。

情况1:Add、Commit需提交的文件

git add textUntrackedFiles.txt

git commit -m "commit message..."

情况2:自动忽略(.gitignore)关键文件

  • 在git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,git就会自动忽略这些文件。

刚刚那个文件被忽略了。

情况3:清理掉不需要的文件

  • git clean 是从你的工作目录中删除所有没有tracked(未跟踪)过的文件

要知道这个命令很危险,删除了就找不到了。但如果已git add .就不会被删除。
参数说明:

  • n:显示将要被删除的文件以及目录
  • d:删除未被添加到git路径中的文件以及目录(将.gitignore文件标记的文件全部删除)。
  • f:强制执行(只会删除文件)
  • x:删除没有被track的文件
  • 使用案例
//使用帮助文档 (git clean)
git help clean

//演习示范,提前告诉你那些文件会被删除,不会真正删除
git clean -n

//删除当前目录下所有没有track过的文件,.gitignore文件里指定的不会删除。
git clean -f

//删除指定路径下的没有被track过的文件
git clean -f <path>

//强制删除所有没有被track过的文件和文件夹,
git clean -df

//强制删除所有没有被track过的文件(.gitignore文件里指定的也不能避免)
git clean -fx

X 参考文献

posted @   千千寰宇  阅读(2298)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示