如何忽略我没有写权限的模块中的更改?

时间:2018-05-05 14:12:49

标签: git github git-submodules

我们有一个使用几个git模块的项目。遇到了一些问题,我对本地副本进行了一些更改。我没有模块的提交权限,因此更改将保留,直到它们(通过其他方式)传播到正式版本,之后一切都将同步。

在此之前,git.gitignore.git/info/exclude是否有办法忽略这些更改的结果?我不知道该怎么称呼它们,但在GitHub中它们看起来像这样:

[] packages/local/Foobar        -Subproject commit-[lots of digits]
                                +Subproject commit-[lots of digits]-dirty

如果我有很多更改的文件,很容易忽略它们取消它们,我最终得到git / GitHub错误。

1 个答案:

答案 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