.gitignore文件无效 - 仍然显示文件夹未被跟踪

3

我看到了很多次相同的答案,但它们并没有起作用。

我已将文件夹添加到我的.gitignore文件中...... 我似乎找不到这些文件夹在我的GitHub库中,所以不确定是否已经添加......

我尝试过以下方法,但它不起作用,而且会撤销已经添加到仓库中的所有内容:

git rm -r --cached .

我尝试了以下方法,但它告诉我这不是一个文件:

git rm -r --cached FOLDERNAME
git rm -r --cached FOLDERNAME\
git rm -r --cached "Full Path To Folder"

我不想完全删除它们,所以清理是不可行的。

我该怎么办才能解决这个问题?


2
你能分享一下你的.gitignore文件吗? - Mudits
我认为你应该在根目录下运行这些命令。 - Sagar
Git 不存储文件夹。Git 只存储文件(在提交中)。提取一个有名为 a/b/c/d/e 的文件的提交,如果 d 不存在于 c 中,或者 c 不存在于 b 中,或者 b 不存在于 a 中,或者 a 不存在,或任何组合 - Git 将会 创建 所需的所有组件以提取文件 a/b/c/d/e。但不要在 Git 中查找 a/b/c/d:它就是不存在的。只有 a/b/c/d/e 实际上 存在 于 Git 中,作为一个或多个提交的一部分。 - torek
git status 命令会总结 a 内的许多(甚至一个)未跟踪的文件或 a/b/c/d 内的文件,具体取决于 Git 中有什么内容,只需列出 a/a/b/c/d/或两者之间的某些内容。要使 git status 停止这样总结,请使用 git status -uall 使其逐个显示每个文件。 - torek
@torek git 绝对会存储文件夹。https://dev59.com/pHRC5IYBdhLWcg3wS_EF#343734 - ProsperousHeart
@KassandraKeeton: 不是这样的。那个答案是关于.gitignore忽略(文件夹内的)内容。忽略是基于文件的 - 文件夹列出文件,所以您可以通过在.gitignore中列出d/来批量忽略“d/中的所有文件”,但这并不意味着Git将存储d/本身。(从技术上讲,在其内部存储格式中,Git存储带有子树的。有一个叫做空树的东西,但如果您尝试使用它来存储空文件夹,则Git会将其更改为称为* gitlink *的特殊条目。请参见 https://dev59.com/UGkw5IYBdhLWcg3wm74h) - torek
2个回答

2

非常愚蠢...但是你必须确保所有的斜杠都是正向的。如果在Windows中,反斜杠是不可见的。

好的例子:

TrainUp/
pandas/Data Camp/
Python/Recipes/.ipynb_checkpoints
Python/Basics/.ipynb_checkpoints

不好的例子:

TrainUp\
pandas\Data Camp\
Python/Recipes/.ipynb_checkpoints
Python/Basics/.ipynb_checkpoints

0

请确保:

  • .gitignore 不在你想要忽略的子文件夹内,而是至少在上一级(被忽略文件夹的父文件夹)
  • 大小写相同

使用以下命令检查 .gitignore 的结果:

git check-ignore -v -- foldername/afile

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接