由于gitmodules是在Git的介绍,我想补充他们像这样:
[submodule "actionbarsherlock"]
path = actionbarsherlock
url = git://github.com/JakeWharton/ActionBarSherlock.git
ignore = dirty
这里最重要的部分是ignore = dirty
。
当使用git submodule add
的命令,我不得不通过自己在加入这一行.gitmodules
文件。
我怎样才能让这对每个默认行为git submodule add
我就会在未来的危机?
我知道的submodule.<name>.ignore
配置,但如何将它在默认情况下适用于所有?
请注意,即使有这样的配置,git的2.0.1(2014年6月25日)仍然会显示您已经上演了子模块。
见提交1d2f393由莱曼( jlehmann
)
目前设置submodule.<name>.ignore
和/或diff.ignoreSubmodules
为“ all
”抑制的DIFF家庭,地位的子模块改变所有输出和提交。
对于状态并承诺这实在是令人困惑的,因为它即使在用户选择记录通过将其添加为一个被忽略的子模块的commit手动这种变化不会在待提交的变化显示出来。
为了雪上加霜的是,以后的“git的承诺”会报错了以“ nothing to commit
”时,仅被忽略的子模块都在上演。
修正了通过使wt_status
始终打印上演子模块的变化,不管是什么忽略设置配置。
唯一的例外是当用户明确地使用了“ --ignore-submodules=all
”命令行选项,在这种情况下,子模块输出仍然抑制。
这也使得“ git commit
再次”工作时,仅被忽略的子模块的修改都在上演,作为命令使用的“commitable”成员wt_status
结构,以确定是否上演的变化都存在。
又见提交c215d3d的git commit
的一部分。
因此,要关闭这个, 没有 ,没有它(可惜)默认选项。
今天,我发现可以使用git config
更改.gitmodules
文件,因此可以添加忽略脏标志没有进入该文件并通过手工添加一行:
git config -f .gitmodules submodule.actionbarsherlock.ignore dirty
就我而言,我能够在与该命令的脚本两个步骤的自动化。
我不知道一个默认选项。 要不是一个二进制状态(忽略或不),你可以得到牵引着:
diff.ignoreSubmodules
Sets the default value of --ignore-submodules. Note that this affects only git diff Porcelain, and not lower level diff commands such as git diff-files. git checkout also
honors this setting when reporting uncommitted changes.
但是当你正在使用dirty
,我不知道有一种方法来设置默认值。 无论如何,你可以在你的一个git的别名为此$PATH
。 编写接受子模块作为参数的脚本,并设置适当的dirty
配置值,则该脚本添加到您的$PATH
。 说它git-<command>
,这将是可作为git <command>
。
你的意思呢?
git config --global core.ignore dirty
其中,优先写入你的~/.gitconfig
文件。