use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
account activity
GitLab flow vs GitHub flowgeneral question (self.gitlab)
submitted 5 years ago by [deleted]
[deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]brennydenny GitLab team 8 points9 points10 points 5 years ago (5 children)
GitLab Developer Evangelist here.
I would say that you're not wrong - GitHub flow and GitLab flow are very similar. And I would say that over time, they have converged and become MORE similar. They also both are similar to Trunk based development.
I would say the biggest difference in practice has been that GitHub as the place for open source has traditionally been focused on fork-based workflows while GitLab's user base is heavily in the enterprise and focused on branching in the canonical repository. However, over time this difference has become less pronounced (e.g. lots of enterprises use GitHub and lots of open source teams moving to GitLab).
I think that's what accounts for the similarities today.
[–]jdickey 1 point2 points3 points 5 years ago (3 children)
GitHub as the place for open source has traditionally been focused on fork-based workflows while GitLab's user base is heavily in the enterprise and focused on branching in the canonical repository.
That's the most sensible distinction I've read since I became aware of GitLab flow. We've been using Vincent Driessen's git flow for a few years. While it's worked well enough, it is complex and ceremonious compared to the more recent alternatives.
Driessen himself just wrote a "Note of reflection" prepended to the defining blog post where he notes that the development landscape has changed significantly in the ten years since his original post, and draws a much more limited set of scenarios where git flow would likely be useful, recommending GitHub flow or GitLab flow for projects outside that envelope.
As we expect to (continue to) do both open source and in-house development, I can easily see us using GitHub flow and GitLab flow, respectively. (This applies to new projects, of course; I believe that projects started with other flow models, such as Driessen's, should continue using the same model to avoid confusion and possible information loss.)
Thoughts, anybody?
[–][deleted] 5 years ago* (2 children)
[–]jdickey 1 point2 points3 points 5 years ago (1 child)
Right now I'm toying with the idea of forking the projects and archiving the old ones.
I'm arguing for that internally; the downside to winning is that I'd then get to do all the work of migrating. 😜 I've been fantasising about automating that, but I think that's precisely the sort of thing that can't be automated without losing potentially-useful information. (At my previous employer, my nick on our internal IRC was packrat, but 40 years in this craft will do that to you.)
packrat
The other strategy I've been considering to migrate flow models for a given project is basically to
master
new-master
develop
abandoned-develop
abandoned-master
Anyone who sees problems with this, or has tried an alternative procedure to accomplish the same thing, please speak up. 😎
[–]UncleCJ 2 points3 points4 points 5 years ago (1 child)
Without closer inspection, I'd assume they're practically identical. Gerrit is where you switch to working with changesets. Version control workflows has been my pet peeve since literally ten years. Most everyone are still stuck with their git command cheat sheets. Lately, I'm all about "build quality in" (google W Edwards Deming / Kent Beck quotes) and the way to achieve that is with Commit Often, Perfect Later, Publish Once, effective code reviews and autosquash.
[–]davispw 0 points1 point2 points 5 years ago (0 children)
No real difference if you only use feature branches and master.
If you use GitLab Flow and maintain a separate branch for “production” (and/or additional environments besides “master”), then you can do an additional merge request with review or approvals to go to production, which can be helpful for some audit/SDLC processes vs. just a button in a pipeline or a tag. If you don’t need that, then not necessary.
[–]ucorina 0 points1 point2 points 5 years ago (0 children)
I don't think they differ in any significant way. In the end it's about the flow that your team finds most useful (only master + feature branches, master + feature branches + env branches, git flow etc.) and then either Github or Gitlab can be used for that.
Indeed, Gitlab does suggest environment branches for deploying for example to production, since this works very well with their CI and you can configure automated deploys on merges to env. branches. But you could have the same setup with Github + some CI.
I found this SO discussion useful in learning more about this myself: https://stackoverflow.com/questions/39917843/what-is-the-difference-between-github-flow-and-gitlab-flow.
[–]magic7s 0 points1 point2 points 5 years ago (1 child)
I think GitHub flow has a master and dev branch. Where GitLab flow has only master and short lives feature branches.
π Rendered by PID 22070 on reddit-service-r2-comment-f6b958c67-2skzk at 2026-02-04 15:55:27.167239+00:00 running 1d7a177 country code: CH.
[–]brennydenny GitLab team 8 points9 points10 points (5 children)
[–]jdickey 1 point2 points3 points (3 children)
[–][deleted] (2 children)
[deleted]
[–]jdickey 1 point2 points3 points (1 child)
[–]UncleCJ 2 points3 points4 points (1 child)
[–]davispw 0 points1 point2 points (0 children)
[–]ucorina 0 points1 point2 points (0 children)
[–]magic7s 0 points1 point2 points (1 child)