I need a bit of guidance regarding the correct way to merge a bunch of branches/patches in a git repository and create a new release/tag in the master branch.
My usual usage of git is *very* rudimentary and I've never dealt with merging branches (or never cared how the log looks afterwards), so I'm a bit lost here.
I have forked a git repository of a tool where I've been writing patches and additions to for quite some time. I never touched the "master" branch but always created a distinct branch for each new patch or feature. From those I created pull requests to the original project (which has been abandoned for quite some time now) and diffs for patch files that I use for my own poudriere builds via a 'local patches' hook.
The 'master' branch is still at the same state from which all those branches were created.
I'm at a point where all those lingering branches and patch files are becoming tedious to work with, so I want to create a new 'release' (or a tag? what's the actual difference or better option?), for which I have to incorporate all those branches (mostly holding 1-2 commits) into the master branch.
The master branch should continue to reflect all commits with their original author, date and description, so it shows the full history and not just one huge commit of 'merged branch XY'. Given that the 'git log' of the master branch already looks like that (all commits with their original author, date, description), I suppose this is the 'standard way' of doing this - but I couldn't find out how.
As a bonus, I have at least one branch/commit from another remote repository (which also was a PR to the original project) that I want to include, again preserving the original commit with the original outhor, date and description.
When searching for this topic, one gets half a dozen different opinions with a dozen different 'type-those-commands' walk-throughs (without much explanation) and even more how-tos that heavily vary in complexity and often seem to address a very special edge-case.
I already tried various options to 'git merge', but I always only get a single merge-commit that doesn't reflect the actual commits.
Do I have to create 'local pull request' within my repository and pull them into the master (or for now, my 'newversion') branch? Cherry-pick every single commit? Or can one cherry-pick branches to pull in all commits from that branch?
My usual usage of git is *very* rudimentary and I've never dealt with merging branches (or never cared how the log looks afterwards), so I'm a bit lost here.
I have forked a git repository of a tool where I've been writing patches and additions to for quite some time. I never touched the "master" branch but always created a distinct branch for each new patch or feature. From those I created pull requests to the original project (which has been abandoned for quite some time now) and diffs for patch files that I use for my own poudriere builds via a 'local patches' hook.
The 'master' branch is still at the same state from which all those branches were created.
I'm at a point where all those lingering branches and patch files are becoming tedious to work with, so I want to create a new 'release' (or a tag? what's the actual difference or better option?), for which I have to incorporate all those branches (mostly holding 1-2 commits) into the master branch.
The master branch should continue to reflect all commits with their original author, date and description, so it shows the full history and not just one huge commit of 'merged branch XY'. Given that the 'git log' of the master branch already looks like that (all commits with their original author, date, description), I suppose this is the 'standard way' of doing this - but I couldn't find out how.
As a bonus, I have at least one branch/commit from another remote repository (which also was a PR to the original project) that I want to include, again preserving the original commit with the original outhor, date and description.
When searching for this topic, one gets half a dozen different opinions with a dozen different 'type-those-commands' walk-throughs (without much explanation) and even more how-tos that heavily vary in complexity and often seem to address a very special edge-case.
I already tried various options to 'git merge', but I always only get a single merge-commit that doesn't reflect the actual commits.
Do I have to create 'local pull request' within my repository and pull them into the master (or for now, my 'newversion') branch? Cherry-pick every single commit? Or can one cherry-pick branches to pull in all commits from that branch?