Git

git.png
xkcd: Git

We use submodules to facilitate grabbing all the core servies in one fell swoop.

Yes, yes we know, Git Submodules are not a cake walk. But we believe the convenience of being able to grab the set of core services as a whole is worth it. If you plan to contribute back (as we hope you will), some reading may be required.

Safety precautions for using git with submodules

If you end up using submodules in anger, consider the following:

  • Make status submodule aware:
    git config --global status.submoduleSummary true

  • Make diff submodule aware:
    git config --global diff.submodule log

  • From the parent repository (gameon):

    • Use rebase instead of merge:
      git config alias.srebase 'submodule update --remote --rebase'

    • Recursive diff.
      git config alias.sdiff '!'"git diff && git submodule foreach 'git diff'"

    • Safe(r) push:
      git config alias.spush 'push --recurse-submodules=check'

Other useful aliases

Note global vs. project-specific, make up your own mind which to use.

  • Undo staged changes:
    git config --global alias.unstage 'reset HEAD --'

  • See last commit:
    git config --global alias.last 'log -1 HEAD'

  • Signed commits:
    git config alias.cs 'commit -s'
    If you’re going to contribute code to Game On!, then you need to certify that you agree to the Developer’s Certificate of Origin, as documented in our Contribution guidelines

results matching ""

    No results matching ""