我们有一个使用几个git模块的项目。遇到了一些问题,我对本地副本进行了一些更改。我没有模块的提交权限,因此更改将保留,直到它们(通过其他方式)传播到正式版本,之后一切都将同步。
在此之前,git
,.gitignore
或.git/info/exclude
是否有办法忽略这些更改的结果?我不知道该怎么称呼它们,但在GitHub中它们看起来像这样:
[] packages/local/Foobar -Subproject commit-[lots of digits]
+Subproject commit-[lots of digits]-dirty
如果我有很多更改的文件,很容易忽略它们取消它们,我最终得到git / GitHub错误。
答案 0 :(得分:2)
在git status --help
中,有一个命令行标志可忽略子模块:
--ignore-submodules[=<when>]
Ignore changes to submodules when looking for changes. <when> can be either "untracked",
"dirty" or "all", which is the default. When "untracked" is used submodules are
not considered dirty when they only contain untracked content (but they are still scanned
for modified content). Using "dirty" ignores all changes to the work tree of submodules,
only changes to the commits stored in the superproject are shown (this was the behavior
before 1.7.0). Using "all" hides all changes to submodules (and suppresses the output of
submodule summaries when the config option status.submodulesummary is set).
如果要永久忽略脏更改,请将ignore字段添加到.gitmodules
到 dirty 中的子模块配置中,如下所示:
[submodule "foo/bar"]
path = foo/bar
url = git://github.com/foo/bar.git
ignore = dirty
如果您想忽略所有更改,请添加所有而不是脏:
[submodule "foo/bar"]
path = foo/bar
url = git://github.com/foo/bar.git
ignore = all