HardCoreGit

From CitconWiki
Jump to navigationJump to search
  • messiest git situation and how it was solved
    • a while ago: project with sub modules 4 levels deep, not well supported at the time
  • when to use git submodules?
    • e.g. when depending on third party dependency code (googletest, zlib, ...)
    • when 2 products use the same public interface - extract it into a submodule
    • a submodule stores url, path, sha1 -> saves time when re-building
  • git now supports sparse (partial) checkouts, filtered clone, large file storage (LFS)
    • LFS helps where large binary files change a lot, "plain" git is already great for big files that don't change
  • how to migrate from subversion to git when lots of deployment
    • git tags?
    • git describe relative to a tag - soft indicator of where in timeline you are
    • timestamp of commit? - hard to get back to a specific commit from a given timestamp
    • (not a sales pitch) consider getting external help, eficode has experience in this area
  • pros and cons of monorepos
    • split or not based on behaviour / branching strategy / verification
    • is it good enough for what I need to do right now?
  • cool git tricks that might be useful for the average user
    • git diff filters to quickly see changes to checked in xls/zip/images... files (.gitattributes + .gitconfig section diff)
    • git smudge filters, e.g. for dynamically changing line breaks to unix/windows, encrypting/decrypting sensitive data (also used for LFS)

Git Artifact: https://github.com/Praqma/git-artifact