gpt4 book ai didi

Git:忽略子模块中未跟踪的文件

转载 作者:太空狗 更新时间:2023-10-29 14:26:26 25 4
gpt4 key购买 nike

在我的 git 仓库中,我导入了一些其他项目作为子模块。到目前为止,一切都很好。然而,导入项目的维护者对他们的 .gitignore 文件有点马虎。因此,在构建导入的项目后,git status(在子模块中)列出了大量未跟踪的文件。因此,我自己项目中的 git status 说:

modified:   <submodule> (untracked content)

我的问题是:有没有办法告诉 git 在不修复上游 .gitignore 文件的情况下忽略这些未跟踪的文件?


我完全知道可能的答案是“否”,而且我已经看到 this SO question这告诉我不可能忽略对跟踪文件的更改。这对我来说完全有意义,独立于文件是否在子模块中的问题。但是,我只关心忽略未跟踪 文件,所以我认为我的问题有一个很好的解决方案的可能性很小。

最佳答案

更新 - 在评论中提出了问题:父存储库能否自动分发这些忽略规则。如果您使用我建议的原始方法,据我所知,答案是否定的。但是,在某些情况下,有一种方法可以做到这一点(来自 Роман Яковский 的回答)...


最灵活的方法是在子模块的 gitdir/info/exclude 文件中添加忽略规则。

cd path/to/parent/repo/.git/modules/module-name/info
vi exclude

添加模式,因为它会出现在子模块 repo 的 .gitignore 文件中。

你可以确认子模块的 gitdir 在哪里

cat path/to/parent/repo/submoduledir/.git

这让您可以准确地指定应该忽略的内容;但这种方法的缺点是 gitdir/info/exlcude 不会通过推送或获取传播,因此必须单独配置每个 repo。

如果您不需要对被忽略的文件如此挑剔——例如,如果您可以说“子模块中的任何工作树更改都应该被忽略”——那么您可以在模块定义中指定一个忽略规则(.gitmodules),这当然是 promise 工作的一部分。 gitmodules 文档中解释了可能的忽略规则:https://git-scm.com/docs/gitmodules

关于Git:忽略子模块中未跟踪的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45015742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com