How to organize 50 related rails apps with git?

I’m embarking with 50 related rails apps that will have minor differences between them – the css may differ and maybe each app will have different routes and different titles for the views for the sake of SEO and so on.

But i want all 50 apps to be consistent when i change other things. So basically i will have to end up with my own cms and each website will have different settings.

  • Viewing all `git diffs` with vimdiff
  • How do I do a pristine checkout with mercurial?
  • Git Bash(mintty) is extremely slow on my windows 10
  • Bugged file path in Git - path contains backslash (\) instead of regular slash
  • how to pop git stash without triggering an auto-merge
  • How to change repo with magit emacs?
  • I’m sure i’m not the first person to encounter this problem. How would i go about organizing this while using Rails, git, github and heroku so that when i deploy, all apps update and remain consistent but still hold their own settings?

  • Git svn work flow, making branchs in git-svn
  • Git: How to revert everything exactly to the state of a prior commit?
  • What are those 'WIP' and 'index' commits that appear after stashing?
  • How to use `git describe` on repos without tags?
  • Github and Git two repos in one project
  • Git track a remote branch using netbeans
  • 3 Solutions collect form web for “How to organize 50 related rails apps with git?”

    I fork a base project and keep it as “upstream”.
    I clone the forked project in my development environment and keep it as “origin”.
    So my development environment has an origin and an upstream.

    When I do something that effects all forked projects, I do the change in upstream, then I go into each project, pull from upstream and merge.

    You can also have a hierarchy of upstreams and keep them synchronized with the original upstream.

    If those are purely configuration files, the best approach is to follow the Heroku page “Configuration and Config Vars”:

    Don’t put those files in a Git repo itself.

    Use the Heroku CLI’s config, config:add, config:get and config:remove to manage your config vars

    I’m a huge fan of only having to maintain one project if it’s possible. If it’s only the (user-controlled) styling of an app you might go with a multi-tenant approach in the basecamp style. Your app would display different endpoints, e.g. differentiated by subdomains, that you could also point different top-level domains to. The variable parts of the app then needs to be stored in the database, such as e.g. the styles, layouts, and whatever user-controlled content you have. One approach is outlined in the answers to this question, though there are definitely more ways.

    Git Baby is a git and github fan, let's start git clone.