I have 2 branches: develop & master. Master is always behind develop. Now I created a new branch called new-branch, which is essentially develop but has different source hierarchy (for example, Java package naming was totally changed), but functionality/logic remains the same. Then I would like to continue development in both branches for a while. What I usually do - push commit into develop and then cherry-pick it to new-branch, and fix any possible conflicts.
Question1: Is there any better way to do this if I really need to keep both branches? Merging/rebasing seems to not work here because it merges entire source tree.
Now after a while I decided that develop branch could be replaced by new-branch. And later on master should also contain same changes. What I usually do - just delete develop & master and rename new-branch to develop and make master point to develop.
Question2: Is there a better way? Merging them together (merge new-branch to develop) at this point is quite difficult and probably unnecessary - so I decided just to replace branches brutally.