小编典典

如何摆脱 Git 子模块未跟踪状态?

all

我似乎无法摆脱 Git 子模块中未跟踪的内容。运行git status产量:

# 在分支master上
# 未为提交暂存的更改:
# (使用“git add ...”来更新将要提交的内容)
# (使用 "git checkout -- ..." 丢弃工作目录中的更改)
# (提交或丢弃子模块中未跟踪或修改的内容)
#
# 修改:bundle/snipmate(未跟踪的内容)
# 修改:捆绑/环绕(未跟踪的内容)
# 修改:捆绑/尾随空白(未跟踪的内容)
# 修改:bundle/zencoding(未跟踪的内容)
#
没有添加到提交的更改(使用“git add”和/或“git commit -a”)

添加--ignore-submodules参数会隐藏这些消息;但我想知道是否有办法以更合适、更核心的方式去除这些污垢。


阅读 158

收藏
2022-08-16

共1个答案

小编典典

由于 git status 报告未跟踪的内容,因此获得干净状态的实际方法是进入这些子模块中的每一个,并且:

  • 添加并提交未跟踪的内容,
  • .gitignore或引用特定于每个模块 的未跟踪内容。
  • 或者您可以将相同的忽略内容添加到子模块中.git/info/exclude,就像peci1在评论中报告的那样。
  • 或添加脏到子模块规范,如ezraspectre回答(upvoted)中所述。

    git config -f .gitmodules submodule.<path>.ignore untracked
    
  • 或添加一个 全局 .gitignore文件(通常~/.gitignore-global)。例如.DS_Store,或者在我的情况下,正如Mari谩n 膶ern 媒体评论Carthage/Build中所报道的那样。请参阅手册页.gitginore

用户希望 Git 在所有情况下都忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常进入 core.excludesFile
用户指定的文件中~/.gitconfig。它的默认值为$XDG_CONFIG_HOME/git/ignore.
如果$XDG_CONFIG_HOME未设置或为空, $HOME/.config/git/ignore 则改为使用。

2022-08-16