Drew Angell
Drew Angell

Reputation: 26056

How to fix Git submodule resulting in 404 not found..?

I have a GitHub repo for a PayPal PHP class library, and I have a [separate GitHub repo for a set of demo kits][2] that are built using the library.

The demo kit repo adds the class library as a Git submodule, and it also adds Bootstrap as a submodule. This is my .gitmodules file...

[submodule "vendor/angelleye/paypal-php-library"]
    path = vendor/angelleye/paypal-php-library
    url = https://github.com/angelleye/paypal-php-library.git
[submodule "vendor/twbs/bootstrap"]
    path = vendor/twbs/bootstrap
    url = https://github.com/twbs/bootstrap.git

For some reason the PayPal library submodule is not working anymore. When I look at the demo kit repo and browse into the submodule, it shows a link to a particular commit...

enter image description here

That commit doesn't seem to exist anymore in the repo, though, and when we click that link it brings up a GitHub 404 Not Found page.

Not sure how to fix this at this point..?? When we run git submodule update it brings in the Bootstrap just fine, but the PayPal library is failing because of that broken link/submodule.

The PayPal library repo is still fine, though, and my local stuff all matches the GitHub stuff, so I'm not sure what to do at this point.

Any information on how I can get the submodule fixed would be greatly appreciated. Thanks!

Upvotes: 5

Views: 4341

Answers (1)

VonC
VonC

Reputation: 1330042

This is typical of a submodule which made a local new commit, but forgot to push it to its remote repo.

The parent repo recorded the new gitlink (the SHA1 of the submodule tree), the special entry in the index of the parent repo, which is what you see. But since that SHA1 has not been pushed... you get htat error.

If you have still access to the local repo in which commit fdfaeb1 was done, all you need to do is a git push from within that repo/submodule.

Upvotes: 4

Related Questions