首页 > 解决方案 > 如何在 Git 本地完全排除子目录

问题描述

情况 我们有一个包含多个顶级目录的 Git 仓库 - gradle 多个模块项目。

问题 一个目录有很多文件,在我的工作中我根本不需要它们。我不希望它们出现在我的磁盘上,我不希望我的 IDE 意外扫描它们,而且在大多数情况下 - 我不希望它们减慢任何 git 操作,比如 pull 并让我在这里和那里折腾冲突的更改(删除此目录)。

我希望将此目录排除在它存在(本地)的任何警告之外的完美情况是什么。所以我只能通过寻找远程来知道它的存在。所以我在磁盘上看不到它,而 pull/checokut/commit/merge/push 和其他 Git 操作就像我们根本没有这个目录一样。

评论 我确实尝试过 git ignore,但没有帮助.. 提前感谢您解决了我的痛苦!

标签: gitbranchgitignore

解决方案


您可以将此文件夹移动到子模块。

Git 子模块:一个结构Git,使您能够将单独的Git存储库作为现有存储库中的子目录。这有效地将两个单独的存储库在一个项目中链接在一起。

# adds a submodule
git submodule add git@github.com:robconery/logging.git logging
git submodule init

# cloning repository with submodules
git clone ...
git submodule init
git submodule update

推荐阅读