If that submodule push fails for some reason, the main project push will also fail.

updating rubygems nothing to update-83

The simple option is to go into each submodule and manually push to the remotes to make sure they’re externally available and then try this push again. Writing objects: 100% (9/9), 917 bytes | 0 bytes/s, done. Writing objects: 100% (2/2), 266 bytes | 0 bytes/s, done.

If you want the check behavior to happen for all pushes, you can make this behavior the default by doing $ git push --recurse-submodules=on-demand Pushing submodule 'Db Connector' Counting objects: 9, done. Total 9 (delta 3), reused 0 (delta 0) To https://github.com/chaconinc/Db Connector c75e92a..82d2ad3 stable - stable Counting objects: 2, done. Total 2 (delta 1), reused 0 (delta 0) To https://github.com/chaconinc/Main Project 3d6d338..9a377d1 master - As you can see there, Git went into the Db Connector module and pushed it before pushing the main project.

You’re likely to have to either include this code from a shared library like a CPAN install or Ruby gem, or copy the source code into your own project tree. Submodule path 'Db Connector': checked out 'c3f01dc8862123d317dd46284b05b6892c7b29bc' The simplest model of using submodules in a project would be if you were simply consuming a subproject and wanted to get updates from it from time to time but were not actually modifying anything in your checkout. $ git submodule update --remote Db Connector remote: Counting objects: 4, done. remote: Total 4 (delta 2), reused 4 (delta 2) Unpacking objects: 100% (4/4), done.

The issue with including the library is that it’s difficult to customize the library in any way and often more difficult to deploy it, because you need to make sure every client has that library available. remote: Total 11 (delta 0), reused 11 (delta 0) Unpacking objects: 100% (11/11), done. From https://github.com/chaconinc/Db Connector 3f19983..d0354fc master - branch of the submodule repository.

From https://github.com/chaconinc/Db Connector c87d55d..92c7337 stable -$ git submodule update --remote --rebase First, rewinding head to replay your work on top of it...

Applying: unicode support Submodule path 'Db Connector': rebased into '5d60ef9bbebf5a0c1c1050f242ceeb54ad58da94'$ git submodule update --remote remote: Counting objects: 4, done. remote: Total 4 (delta 0), reused 4 (delta 0) Unpacking objects: 100% (4/4), done.

A common issue arises in these scenarios: you want to be able to treat the two projects as separate yet still be able to use one from within the other. Suppose you’re developing a website and creating Atom feeds.

Instead of writing your own Atom-generating code, you decide to use a library.

It sees that at some point in the submodule project, someone merged branches containing these two commits, so maybe you’ll want that one.