我似乎无法摆脱 Git 子模块中未跟踪的内容。运行git status产量:
git status
# 在分支master上 # 未为提交暂存的更改: # (使用“git add ...”来更新将要提交的内容) # (使用 "git checkout -- ..." 丢弃工作目录中的更改) # (提交或丢弃子模块中未跟踪或修改的内容) # # 修改:bundle/snipmate(未跟踪的内容) # 修改:捆绑/环绕(未跟踪的内容) # 修改:捆绑/尾随空白(未跟踪的内容) # 修改:bundle/zencoding(未跟踪的内容) # 没有添加到提交的更改(使用“git add”和/或“git commit -a”)
添加--ignore-submodules参数会隐藏这些消息;但我想知道是否有办法以更合适、更核心的方式去除这些污垢。
--ignore-submodules
由于 git status 报告未跟踪的内容,因此获得干净状态的实际方法是进入这些子模块中的每一个,并且:
.gitignore
.git/info/exclude
或添加脏到子模块规范,如ezraspectre的回答(upvoted)中所述。
git config -f .gitmodules submodule.<path>.ignore untracked
或添加一个 全局 .gitignore文件(通常~/.gitignore-global)。例如.DS_Store,或者在我的情况下,正如Mari谩n 膶ern 媒体在评论Carthage/Build中所报道的那样。请参阅手册页:.gitginore
~/.gitignore-global
.DS_Store
Carthage/Build
.gitginore
用户希望 Git 在所有情况下都忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常进入 core.excludesFile 用户指定的文件中~/.gitconfig。它的默认值为$XDG_CONFIG_HOME/git/ignore. 如果$XDG_CONFIG_HOME未设置或为空, $HOME/.config/git/ignore 则改为使用。
core.excludesFile
~/.gitconfig
$XDG_CONFIG_HOME/git/ignore
$XDG_CONFIG_HOME
$HOME/.config/git/ignore