feat: initial commit. When pushing that commit, on master semantic-release will release the version 1.0.0 and make it available on the default distribution channel which is the dist-tag @latest for npm.feat: drop Node.js 6 support \n\n BREAKING CHANGE: Node.js >= 8 required to master. When pushing that commit, semantic-release will release the version 2.0.0 on the dist-tag @latest.master and release it, the new version would require Node.js 8 or higher as the release would also contain the commit feat: drop Node.js 6 support \n\n BREAKING CHANGE: Node.js >= 8 required.1.x from the tag v1.0.0 with the command git checkout -b 1.x v1.0.0 and we commit that feature with the message feat: a feature to the branch 1.x. When pushing that commit, semantic-release will release the version 1.1.0 on the dist-tag @release-1.x so users who can't migrate to Node.js 8 or higher can benefit from it.1.0.0 reports a bug. They cannot migrate to Node.js 8 or higher and they also cannot migrate to 1.1.0 as they do not use the feature developed in feat: a feature and their corporate policies require to go through a costly quality assurance process for each minor upgrades.patch release, we create the branch 1.0.x from the tag v1.0.0 with the command git checkout -b 1.0.x v1.0.0 and we commit that fix with the message fix: a fix to the branch 1.0.x. When pushing that commit, semantic-release will release the version 1.0.1 on the dist-tag @release-1.0.x so users who can't migrate to 1.1.x or 2.x can benefit from it.1.0.1 we want to make it available to 1.1.x users as well.1.0.x (the commit fix: a fix) into the 1.x branch. As 1.0.x and 1.x branches have diverged, this merge might require to resolve conflicts.1.x, semantic-release will release the version 1.1.1 on the dist-tag @release-1.x which contains both our feature and bug fix.@latest dist-tag.1.x (the commits feat: a feature and fix: a fix) into master. As 1.x and master branches have diverged, this merge might require to resolve conflicts.master, semantic-release will release the version 2.1.0 on the dist-tag @latest which now contains the breaking change feature, the feature and the bug fix.2.1.0 version reports a bug.fix: another fix to master. When pushing that commit, semantic-release will release the version 2.1.1 on the dist-tag @latest.fix: another fix also affects version 1.1.1 users, so we want to port it to the 1.x branch.master (fix: another fix) into 1.x with git checkout 1.x && git cherry-pick <sha of fix: another fix>. As master and 1.x branches have diverged, the cherry picking might require to resolve conflicts.1.x, semantic-release will release the version 1.1.2 on the dist-tag @release-1.x which contains feat: a feature, fix: a fix and fix: another fix but not feat: drop Node.js 6 support \n\n BREAKING CHANGE: Node.js >= 8 required.