Can't push a commit of Git repo with a submodule
Asked Answered
K

2

6

I've recently added submodule "C" to my repo "B", then checked out a particular commit in submodule C (a previous release of that tool I want to include in B), then committed B and attempted to push. I get this error:

$ git push --recurse-submodules=on-demand

...

Everything up-to-date
The following submodule paths contain changes that can
not be found on any remote:
  _submodules/C

Please try

        git push --recurse-submodules=on-demand

or cd to the path and use

        git push

to push them to a remote.

fatal: Aborting.
fatal: The remote end hung up unexpectedly
gitpub error:  process git-shell failed with status 128

I should mention that the commit in C that I have checked out is parentless/detached (not sure why the developer opted to have it this way). This appears to cause an issue when I want to push my commit in B. It might also be relevant to mention that B is a submodule of a superproject A as well.

Thanks for any insight you may be able to provide.

Keratosis answered 8/1, 2015 at 16:4 Comment(0)
K
5

Ok, being relatively new to Git, I missed that the push command should NOT have included --recurse-submodules for my purposes. I believe I got the message I did because it thought I wanted to also push a commit to the submodule, for which there was no branch.

Keratosis answered 8/1, 2015 at 17:11 Comment(1)
You can also configure it git config --local push.recursesubmodules noCastellany
V
0

If you did it because git suggested to do so but it doesn't work, you can just push to your main repo without its submodules:

git push --recurse-submodules=no origin HEAD
Vitality answered 19/1, 2023 at 16:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.