Git忽略不在.gitignore,排除文件或配置文件中的目录

问题描述 投票:4回答:4

我在我的项目中有一个目录,但该目录已被忽略,但是在我希望忽略的文件夹不会存在的任何位置(.gitignore,exclude或config)。

这是我使用gradle构建的Android Studio项目,我的VCS是Git。我正在使用SourceTree和GitBash来管理仓库。我已将项目中的所有.ignore文件重置为空,\ info \ exclude为空,并且config没有'excludesfile'属性。

被忽略的文件夹是-'myProj / app / src / debug / res / raw /'不知道该文件夹最初是如何被忽略的。git跟踪了另一个相对文件夹'myProj / app / src / debug / res / values'。

我没有在其他地方看到过忽略文件吗?是否有任何git命令可以显示此文件夹在哪里设置为忽略文件夹?也许我忽略了可以删除的二进制文件?

当前正在运行的'git status --ignored'仅显示'myProj / app / src / debug / res / raw /'被忽略。

android git android-studio git-bash atlassian-sourcetree
4个回答
10
投票

使用git check-ignore -v myProj/app/src/debug/res/raw/查看忽略的位置。您可能必须给它指定该目录中文件的名称,而不是目录本身。


3
投票

请注意,您的规则也可能存在于.gitignore_global文件中(在您的用户文件夹中)。您可能通过在SourceTree的“将此忽略项添加到”下拉列表中选择“全局忽略列表”来意外添加了它。

“不要这样做!”

您通常不想在全局忽略列表中添加文件夹名称


1
投票

感谢大家响应如此迅速,

我最终通过使用以下方法添加文件夹来解决了该问题:

  • git add -f myProj / app / src / debug / res / raw /

然后提交并推送,这是一个同时的解决方案,直到找到真正的解决方案,但是在开始跟踪文件夹之后,才找到了窍门。


0
投票

我知道这个问题已有5年历史了,但这是Google结果中的第一个问题。

除了前面提到的可能性之外的另一种可能性是,该文件夹已被添加为子模块。例如。在GitHub中,底部文件夹是一个子模块:

Example

最近在将整个git项目复制到另一个项目时发生了这种情况。也就是说,我的仓库看起来像这样:

repo
|
|__ .gitignore
|__ .git/ #git folder for repo
|__ some_files.ext
|
|__ ignored_folder
     |__ .git/ #git folder of the copied repo
     |__ .gitignore
     |__ some_other_files.ext

我的具体解决方案是:

  1. 将整个ignored_folder剪切到存储库之外。
  2. 添加并提交以删除存储库中的子模块
  3. 删除已移动的.git中的ignored_folder文件夹。
  4. 移回ignored_folder
  5. 添加并提交。

但是,我确定有much better git-like solutions

© www.soinside.com 2019 - 2024. All rights reserved.