我在ignore = dirty
文件中看到.gitmodule
。
示例:
[submodule "docs/submodules/netvirt"]
path = docs/submodules/netvirt
url = ../netvirt
branch = .
ignore = dirty
文档说明:
“dirty”将忽略对子模块工作树的所有更改并采取 只有子模块的HEAD和提交之间的差异 记录在超级项目中。
我无法理解这意味着什么。有人可以用简单的语言说明这一点吗?
我理解的是,当我将子模块添加到超级项目时,它处于状态C(在C处的HEAD),然后在某个时间之后它现在处于状态F(在F处的HEAD)。 ignore=dirty
只会考虑更改D,E,F(这应该是它应该做的!)
显然,我误解了一些事情。它是什么?
答案 0 :(得分:6)
这里的术语“脏”与Git中其他地方的含义相同:有问题的回购已跟踪文件(先前已提交的文件),这些文件具有尚未提交的修改,和/或有新的未跟踪文件。
在子模块的ignore = dirty
设置的上下文中,这意味着如果子模块是脏的(即,如果它跟踪了具有尚未提交的修改的文件和/或新的未跟踪文件),则此类更改将被忽略。不会被忽略的是签出提交的差异,例如:父项目指向提交C
但子模块当前已签出提交F
。
这些是子模块的可能状态,以及父项目中设置为ignore = dirty
的状态:
ignore = dirty
开始)。ignore = dirty
)。