threads / discuss / 62476

"git add -A" should respect "ignore = all" in ".gitmodules"

Subject: "git add -A" should respect "ignore = all" in ".gitmodules"

## tl;dr

2 messages between Nov 11, 2024 and Feb 6, 2026.

replies: 1people: 2as markdown or json

Oliver Kopp· Nov 11, 2024, 09:13 UTC · lore
I have a repository with "ignore = all" set in ".gitmodules"
[submodule "abbrv.jabref.org"]
  path = buildres/abbrv.jabref.org
  url = https://github.com/JabRef/abbrv.jabref.org.git
  ignore = all
  shallow = true
"git status" reports no changes
Now, I do
1. "echo test >> CHANGELOG.md"
2. "git status"
3. See that only "CHANGELOG.md" has modifications
4. "git add -A"
5. See that "CHANGELOG.md" and "buildres/abbrv.jabref.org" has modifications.
This is consistent to the documentation:

A. "ignore = all" is instructing "git status" (and git diff family) only (https://git-scm.com/docs/gitmodules/2.10.5#Documentation/gitmodules.txt-submoduleltnamegtignore) B. "git add -A" adds "all files in the entire working tree" (https://git-scm.com/docs/git-add#Documentation/git-add.txt--A)

However, I think this is not consistent in itself: The files output by "git status" should match the files being handled by "git add -A".

I am aware of the workaround to use "git update-index --assume-unchanged path/to/submodule" for each ignore sub module.

One can try out at git@github.com:JabRef/jabref.git.
StackOverflow question on this: https://stackoverflow.com/q/66773544/873282
My wish: "git add -A" should respect "ignore = all" in ".gitmodules"
WDYT?
Cheers,
Oliver
Claus Schneider· Feb 6, 2026, 12:53 UTC · re: Oliver Kopp · lore

Re: "git add -A" should respect "ignore = all" in ".gitmodules"

Hi .. Please have a look here: https://github.com/gitgitgadget/git/pull/1987 .

Would this solve the problem?

Best regards Claus Schneider

On Mon, Nov 11, 2024 at 10:13 AM Oliver Kopp <kopp.dev@gmail.com> wrote:
Show 44 quoted lines
>
> I have a repository with "ignore = all" set in ".gitmodules"
>
> [submodule "abbrv.jabref.org"]
>   path = buildres/abbrv.jabref.org
>   url = https://github.com/JabRef/abbrv.jabref.org.git
>   ignore = all
>   shallow = true
>
> "git status" reports no changes
>
> Now, I do
>
> 1. "echo test >> CHANGELOG.md"
> 2. "git status"
> 3. See that only "CHANGELOG.md" has modifications
> 4. "git add -A"
> 5. See that "CHANGELOG.md" and "buildres/abbrv.jabref.org" has modifications.
>
> This is consistent to the documentation:
>
> A. "ignore = all" is instructing "git status" (and git diff family)
> only (https://git-scm.com/docs/gitmodules/2.10.5#Documentation/gitmodules.txt-submoduleltnamegtignore)
> B. "git add -A" adds "all files in the entire working tree"
> (https://git-scm.com/docs/git-add#Documentation/git-add.txt--A)
>
> However, I think this is not consistent in itself: The files output by
> "git status" should match the files being handled by "git add -A".
>
> I am aware of the workaround to use "git update-index
> --assume-unchanged path/to/submodule" for each ignore sub module.
>
> One can try out at git@github.com:JabRef/jabref.git.
>
> StackOverflow question on this: https://stackoverflow.com/q/66773544/873282
>
> My wish: "git add -A" should respect "ignore = all" in ".gitmodules"
>
> WDYT?
>
> Cheers,
>
> Oliver
>

← back to recent threads