Git: can I suppress listing of 'modified content'/dirty submodule entries in status, diff, etc?

kch picture kch · Jul 13, 2010 · Viewed 49.7k times · Source

Somewhen (around the 1.6.x releases, I think) git became aware of changes inside submodules. That only serves to annoy me:

$ git status vendor | grep modified:
#       modified:   vendor/rails (modified content)
$ git diff vendor/
diff --git a/vendor/rails b/vendor/rails
--- a/vendor/rails
+++ b/vendor/rails
@@ -1 +1 @@
-Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f
+Subproject commit 046c900df27994d454b7f906caa0e4226bb42b6f-dirty

Please make it stop?

Edit:

Ok, so I have an answer. Now I have another question:

Can I put this in ~/.gitconfig? From my initial it appears that I cannot, and I didn't see anything promising by skimming the patch. (I guess I can still make an alias.)

Answer

NilsHaldenwang picture NilsHaldenwang · Apr 4, 2011

There is even a possibility to set the ignore mode for every added submodule within the .gitmodules file.

Just today I encountered this problem and immediately wrote an article in my blog about it after finding a solution: How to ignore changes in git submodules

The gist of it:

Once you added a submodule there will be a file named .gitmodules in the root of your repository

Just add one line to that .gitmodules file:

[submodule "bundle/fugitive"]
    path = bundle/fugitive
    url = git://github.com/tpope/vim-fugitive.git
    ignore = dirty