Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support semi-linear merge strategy #61

Open
waldyrious opened this issue Feb 26, 2019 · 2 comments
Open

Support semi-linear merge strategy #61

waldyrious opened this issue Feb 26, 2019 · 2 comments

Comments

@waldyrious
Copy link

waldyrious commented Feb 26, 2019

(originally reported in isaacs/github#1017)

Currently, using the "rebase and merge" option on a pull request will merge the branch using the fast-forward option. This is sometimes called a "linear history" model. The semi-linear model would be equivalent to rebasing the PR branch and then merge it as per the normal merge option (which always creates a merge commit, even if the merge could be fast-forwarded).

The motivation for this model is described in several places, of which I'd highlight A tidy, linear Git history. I took the liberty to slightly edit the diagram from that post, to add a pure linear workflow to the diagram. I think this conveys nicely the differences between merge vs. rebase && merge --ff-only (linear) vs. rebase && merge --no-ff (semi-linear):

git history diagrams

Of course, such a workflow can be implemented via the command line, or using third-party tools, but since GitHub already supports multiple merge strategies (merge, rebase and merge, squash), it seems sensible to natively support this additional option in the web UI.

FYI, GitLab has already implemented this, and it's been requested for Bitbucket as well (in #12914 and #17881, as well as several comments in #6106).

@shrabas
Copy link

shrabas commented Mar 20, 2020

Any updates on this?

@BleedingDev
Copy link

Any updates on this? :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants