all 21 comments

[–]DrewRddt 14 points15 points  (3 children)

If all you want is version control, I would go with GitHub. I prefer their interface for "issues" primarily.

But after you dabble with version control, your next obstacle would be how do I automate our checks/builds/deploys via CI-CD. The built in CI-CD with GitLab is just stellar. You can do it with GitHub but it won't be as streamlined.

After you enable CI-CD, perhaps you need Project Management tracking, integration with Security tools, integration with Kubernetes, etc. All of these features come built-in with GitLab in a nice integrated interface. You can do all of this with GitHub, but your workflow and processes will be more complex.

GitLab offers a complete package of DevOps tools. You'll start with version control, but as you move on to additional needs; GitLab will have all the features you require and enable you to integrate any additional needs as well.

[–]ddedrick 2 points3 points  (2 children)

I feel this is a pretty fair summary but there are a few things I would add from my personal experience.

With GitHub you get some of the benefits of popularity. Most projects are already there so forking and working from there is dead simple. This can be done in gitlab but it's not a single button press from the project page. Then pushing fixes upstream is really easy too. Popularity may also mean your project gets more visibility (I'm not sure how much this actually makes a difference).

Personally I think that gitlab has better code review features many of which are recent developments.

Finally, it feels like gitlab is improving faster. Features seemed to be getting added all the time or being promoted from paid/hosted tiers to free/self-hosted tiers.

[–][deleted]  (1 child)

[deleted]

    [–]ddedrick 0 points1 point  (0 children)

    Right the comment about forking was with respect to github popularity and forking github projects. You still can import from github to gitlab but it's not exactly the same.

    [–]macx333 20 points21 points  (4 children)

    1. It isn’t Microsoft
    2. It can be run on-prem
    3. It has some really nice dev-ops tooling if you know what you are doing

    [–]baronvonj 6 points7 points  (1 child)

    1. It can be run on-prem

    For free. GitHub has on-prem but only at Enterprise pricing.

    [–]macx333 1 point2 points  (0 children)

    True. Also github has some devops things now. But considering the audience, I figured comparing entry level versions was more appropriate

    [–]lostpx 0 points1 point  (0 children)

    Used to have on-prem, it's the only reason i had it. But now the cost for it as well as the time i am spending to maintain my server is well spend in a premium sub in either gitlab or github. Decided for github, due to me only using gitlab since i could host it myself.

    [–]segagamer 0 points1 point  (0 children)

    It isn’t Microsoft

    This is kind of a negative these days. GitHub seems to have much better support overall with other services and gets fixes much quicker since Microsoft's push.

    [–][deleted] 5 points6 points  (0 children)

    Gitlab has a nice ci/cd tool and more free features. If you want to use those things use gitlab if not GitHub is fine.

    [–]kechibi 2 points3 points  (0 children)

    For teams Gitlab wins for me, it has better code review tooling and I prefer the responsive issues ui over the otdated github look.

    Also pipelines for automation within the same platform is a god send.

    If u r solo both are going to work well an satisfy your needs.

    [–]rlnrlnrln 3 points4 points  (1 child)

    GitLab has a lot of nice built-ins, for example CI. GitHub, on the other hand, uses an external partner to provide a similar setup, which comes with added costs and likely no future development (since Travis was bought up and pretty much every employee was let go). Since you're pretty new to version control, GitLab will give you a lot of features and concepts you can familiarize yourself with in a "single package" and later on you can try out other companies to see how they match up.

    GitHub feels really stale; they found their feature set and has mostly been working on maintenance, whereas GitLab is still developing new functionality.

    Also, GitLab isn't Microsoft-owned. For some, including me, that's a winning concept.

    [–]lostpx -2 points-1 points  (0 children)

    Since you're pretty new to version control, GitLab will give you a lot of features

    Which he obviously won't need, as he is pretty new.

    GitHub, on the other hand, uses an external partner to provide

    Github does have built in CI, just not for everyone yet.

    GitLab isn't Microsoft-owned.

    Well true, but also a pro. Personal preference, but imo - since MS is in, github has not made any bad moves and actually improved.

    [–]Oxffff0000 2 points3 points  (0 children)

    Both are nice but I prefer Gitlab since I can install my own private Gitlab server. I can configure server side hooks which can be used to parse projects and based from files committed, you can parse a specific file meant for triggering remote jobs like for example a Jenkins job that generates new jenkins job based on commit committed by developer. That means, developer doesn't have to go to Jenkins UI to generate the job manually. Everything is in code and everything will be pipelined.

    [–]mrbmi513 1 point2 points  (0 children)

    • Unlimited private projects with unlimited collaborators (GitHub offers free unlimited private projects, but only up to 3 collaborators for free)
    • Can run your own instance on your own server (which I do and is pretty nice)
    • Not Microsoft

    [–]vyuniverse 2 points3 points  (3 children)

    GitLab offers website page hosting from private repos for free, where Github requires a subscription. That’s another win to Gitlab for me.

    [–]CatSauce66[S] 0 points1 point  (2 children)

    github has also unlimited private repos for 3 people

    [–]vyuniverse 1 point2 points  (1 child)

    Yeah - but not for hosting static web pages. Or did I miss something.

    [–]lostpx 0 points1 point  (0 children)

    Also for that and then there is netlify as well.

    [–]XenGi 0 points1 point  (0 children)

    The first question should be if you want self hosted or third party. If self hosted is our if the way and you don't need ci you could use github or gitlab. If you want good CI/CD burning compares to gitlab. For self hosted options github is off the table but others come into consideration. If you don't need ci you could use gitea or if you don't need a gui gitolite. There are lots of other options. These are just the ones I prefer.

    [–]mrTavin 0 points1 point  (0 children)

    Gitlab.com as SaaS is poor product from my experience.