提交时忽略子模块脏状态
我有一个带有子模块的存储库。对我来说,这个子模块是只读的,所以我使用 submodule.Module.ignore=dirty。
这对于“git status”来说效果很好,但是当我提交时,整个子模块都会被扫描,并且在 git 的注释中我可以看到它是脏的。
有办法避免这种情况吗?
I have a repository with a submodule. For me, this submodule is read-only, so I'm using submodule.Module.ignore=dirty.
This works fine for 'git status', but when I commit, the whole submodule is scanned and in git's comments I can see that it's dirty.
Is there a way to avoid this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您真的不想看到子模块的更改,您可以使用 '*' 模式在子模块内的 .git/info/exclude 添加一行。
这将导致子模块始终将其自身报告为干净,无论发生了什么变化。
If you really never want to see changes to the submodule, you can add a line to .git/info/exclude inside the submodule with a '*' pattern.
This will result in the submodule always reporting itself as clean, regardless of what has changed.
在提交 8f6811efed5451c72aa 中解决了上游问题
Solved upstream in commit 8f6811efed5451c72aa
您可能想要编辑
.git/info/exclude
文件,以添加要忽略的模式。但对于子模块来说,这是行不通的。相反,您应该从 Git 存储库的根目录编辑.git/submodule_foo/info/exclude
。这是因为,在较新版本的 Git 中,路径
submodule_foo/.git
是一个文件,而不是目录。它的内容让我们知道子模块的 .git 文件在哪里:You probably want to edit the
.git/info/exclude
file, to add a pattern to be ignored. But for a submodule, this won't work. Instead, you should edit.git/submodule_foo/info/exclude
, from the root of the Git repo.This is because, in newer versions of Git, the path
submodule_foo/.git
is a file, not a directory. Its contents lets us know where the.git
files for the submodule are: