Git workflow for maintaining a derivative fork Git workflow for maintaining a derivative fork git git

Git workflow for maintaining a derivative fork


Option 3 seems to represent to clearest separation of workflow between the two projects:

  • one with occasional contribution back to the original project, with pull requests
  • one with entirely new branches and code for the new application

To facilitate the merges, I would recommend using hierarchical branch names in your repo, in order to clearly separate:

  • branches for your project development (classic names, no need for a '/' in them)
  • branches from the upstream/original repo (all prefixed with a name representing a branch from the original repo, like 'original/dev', for you to cherry-pick from or to)
    Those branches are already in their remotes/upstream namespace, but if you want to push back new commits, you need to create a local branch, and my point is: the name of that local branch should have a '/' in it, in order to clearly differentiate it with other regular branches for your project.