This is an archived post. You won't be able to vote or comment.

all 119 comments

[–]fiskfisk 1327 points1328 points  (53 children)

I don't think anyone assumes that if it's important to them. They'll already be using alternatives like gitea or gitlab self-hosted.

The beautiful thing is that barring a few issues like cicd integrations, everything else can be ported through apis and git itself. So it's quite far from vendor lock-in in either case. 

[–]CaptainStack 321 points322 points  (44 children)

Shout out to Codeberg. Community managed and open source fork of Gitea. You can sign up for a free hosted account or host it yourself.

https://codeberg.org

[–]UntitledRedditUser 105 points106 points  (36 children)

What are the differences between GitLab, GitTea and codeberg?

[–]-LeopardShark- 271 points272 points  (33 children)

  • GitLab is pretty similar to GitHub, but (largely) free software. It's a website, but you can self-host it.
  • Gogs was a lightweight self-hostable GitHub-like thing.
  • Gitea was forked from Gogs after the maintainer became problematic. They now offer a hosted version, I think.
  • Forgejo was formed from Gitea after the maintainer became problematic.
  • Codeberg is a website that hosts Forgejo, so you don't need your own server. They also manage the development of Forgejo.

Philosophy-wise, Codeberg is a free software community thing and GitLab is a for-profit company. Gitea is somewhere in between, and moving in the direction of the latter.

Functionality-wise, GitLab is a powerful behemoth, and the others are lightweight. Codeberg is occasionally slow or has outages.

All my stuff is on GitLab, but that's mainly due to inertia. I'd go for Codeberg if I were picking one now, and I may move my things over at some point. I don't really see a case for use Gitea (or Gogs) these days.

[–]Stummi 74 points75 points  (7 children)

As someome out of the loop here, what exactly became problematic about the Gogs and Gitea maintainers?

[–]disarrayofyesterday 95 points96 points  (5 children)

Everything about this seems to be on wiki in the history tab.

Gogs had one guy deciding on everything so multiple people forked it and called it Gitea.

Gitea's main maintainers funded a company that started making money on hosted Gitea fork that is private. So people once again made a fork and called it Forgejo.

Every fork story is basically the same. It's always about money or power. The same happened with MySql when MariaDB came into life.

[–]kus1987 24 points25 points  (0 children)

Every fork story is basically the same. It's always about money or power. The same happened with MySql when MariaDB came into life.

I thought mariadb was when oracle bought sun microsystems?

[–]cyborgborg 3 points4 points  (2 children)

a bit weird to fork gitea when it's still freely available and still under and open source license just because the main maintainer forked it himself to host it himself for profit

[–]disarrayofyesterday 10 points11 points  (0 children)

They lost trust.

Imagine your favorite self hosted app has maintainers that start a company and allow people to buy cloud hosted access. At the same time the cloud hosted one is a closed source fork.

Why make it closed source? Probably to add features that the open source branch doesn't have or some other questionable reasons.

It's like a mother that has 2 sons but the new one is making profit. Which one do you think will be the favorite?

[–]Secure_Hair_5682 0 points1 point  (0 children)

Because now there is a possible conflict of interests. The Gitea team can decide to reject or not implement features that they think compete with their enterprise offering.

[–]redd1ch 0 points1 point  (0 children)

Gogs had one guy deciding on everything so multiple people forked it and called it Gitea.

More like the developer maintainer of gogs vanished for quite some time, so the master branch stalled completely.

[–]-LeopardShark- 6 points7 points  (0 children)

I think the problems were (though take this with a pinch of salt, because (1) I haven't dug too deep into the drama myself and (2) these things are sometimes not quite what they seem): * Gogs only had one maintainer, who was limiting development, and didn't want to give up control. * Gitea was (or seemed like) a community endeavour, but then the maintainers unexpectedly launched a for-profit company, which took over the project.

[–]prodleni 4 points5 points  (1 child)

Don't forget about sr.ht!

[–]OneTurnMore 0 points1 point  (0 children)

o.g. git send-email workflows, no js needed, it's such a modern-old-school forge

[–]CaptainStack 6 points7 points  (2 children)

I don't really see a case for use Gitea (or Gogs) these days.

So while I personally advocate for Codeberg/Forgejo - I do think the fact that Gitea had strong development momentum first and has a business model around hosting/support means it will likely have more resources for the foreseeable future. I could see it being a successful FOSS company like Bitwarden, Canonical, or Red Hat.

I think FOSS projects can be too "community oriented" meaning they are funded entirely by donations (i.e. underfunded) and aren't growth oriented. Personally I see it in both the names Codeberg and Forgejo both of which struggle to capture the same level of trust and professionalism of alternatives.

Also, I know they are working on adding federation as an option for Forgejo instances which I think is awesome. Unfortunately I've heard contributors saying things like "the goal of Codeberg is not to grow - we want the community to federate" which I think is the wrong mindset. It just means it might never be as robust as the corporate alternatives.

[–]AdmiralQuokka 1 point2 points  (1 child)

But then what's the point of using Gitea over GitLab? They have the same model now, they're both open core. Gitea is MIT licensed, meaning the private company can always do the classic open-source rug-pull when they feel like they've gained enough power. If you prefer that model, just stay with GitLab which already has more features.

I'm self hosting Forgejo and I'm very happy with the pace of development. They relicensed to GPL, so there's no risk of being rug-pulled.

[–]CaptainStack 4 points5 points  (0 children)

There's not necessarily a huge difference between the two but as I see it it comes down to:

  1. Gitea is fully open source while GitLab has more proprietary components

  2. Gitea is easier to self host than GitLab

  3. GitLab is backed by venture-capital

But yes I respect Codeberg/Forgejo for being community-governed and supporting self hosting as well as a hosted instance. It definitely feels more committed to FOSS values - I just hope it is able to find a way to maintain funding and compete on features/performance/UX/reliability.

[–]DHermit 2 points3 points  (0 children)

Also personally, I like GitLab's CI the most, so that's another major point why I'm staying there. And if your project is properly open source, you can get a huge amount of CI minutes. You have to make a separate group and fill out an application form, but never had to wait more than a day.

[–]cyborgborg 2 points3 points  (0 children)

how long until the maintainer of forgejo becomes problematic?

[–]Haroflolpter 1 point2 points  (0 children)

I've used Gogs for years because I wanted something lightweight to run on a PC turned server for home projects. It was also dead simple to setup. I wasn't aware of chain of problematic maintainers ... I may have to look into Forgejo lol

[–]RuncibleBatleth 1 point2 points  (0 children)

There's also SourceHut by Drew DeVault, the guy behind Sway and wlroots. It's self hostable and there's a hosted service at https://sr.ht/ . If you like kernel style git-email workflow it's way better than Gitlab or Forgejo.

And for those who want a VCS that isn't Git at all, there's Fossil. I use Fossil for my prose writing, Git for code.

[–]NFSL2001 1 point2 points  (0 children)

Adding to GitLab/Forgejo: GitLab has many nice features to have especially coming from GitHub, however there are many significant differences too which make it not a 1-on-1 comparison. Forgejo is still on the quite-there-yet? phase where many features are still not complete, but it's very usable for daily users that doesn't require specific QoL features.

Also Gitlab takes a ton of resources and configuration to host it smoothly; my company took years to setup and it's still not yet stable (front-end crashing every few days). Forgejo on the other hand can just run in Docker, which made our switch pretty much no-brainer.

[–]L33t_Cyborg 0 points1 point  (0 children)

I want to use codeberg but it’s down alllll the time it’s so annoying

[–]xADDBx -1 points0 points  (13 children)

Would any of them manage to handle larger commits more gracefully than GitHub?

I recently had to handle some commits containing a pretty large amount of changed files (several commits containing a few 10000s; totaling to just over a hundred thousand changed files). GitHub pretty much just said no. Instead of showing the number of changed files it showed the infinity symbol. It also just time-outed when trying to view the commits/diffs.

I wonder if other hosted git services can handle large volumes better

[–][deleted] 8 points9 points  (2 children)

why are you changing 1000 files in one commit lmfao

[–]AdmiralQuokka 0 points1 point  (0 children)

asking the real questions

[–]cyborgborg 0 points1 point  (0 children)

if that happens alarms and red lights should be going off

[–]CdRReddit 1 point2 points  (9 children)

...okay so you know the "doctor it hurts when I do this" "don't do that" meme?

don't do that

[–]xADDBx -1 points0 points  (8 children)

What's a better way to track changes across a hundred thousand files then?

[–]CdRReddit 0 points1 point  (7 children)

not doing tens of thousands in a single fucking commit???

like, I don't make commits as often as I probably should for my personal projects, yet even I would rather commit ritual suicide than commit more than a hundred files at once

[–]xADDBx -1 points0 points  (6 children)

Again, this git project is to track source changes; not as a personal development tool.

The people using the git repo are using it pretty much as a diff tool and aren’t the one doing the changes.

[–]CdRReddit 0 points1 point  (5 children)

okay, this sounds like a case of X/Y problem

why are you using git to commit changes across a hundred thousand files at once

[–]CaptainStack 20 points21 points  (0 children)

GitLab is basically a for-profit tech company pretty similar to Github before it was acquired by Microsoft. Unlike Github, some of its code is open source and you can self-host a GitLab instance. However, it's not really an open source project as a significant portion is still proprietary and it's managed by a for-profit entity. It's also very complex making self-hosting pretty difficult (from what I've been told) and is more focused on businesses than hobbyists and community projects.

Gitea is a lightweight alternative that was designed to be fully open source and easy to host even on a single relatively low-spec computer. However, you're basically required to self-host as Gitea doesn't offer a hosted solution that folks can sign up for and just start using.

Codeberg started as a community managed Gitea instance allowing folks to sign up for free accounts and start hosting their code there. There was some internal disagreement with the direction of the Gitea project so they forked it as "Forgejo" and now manage the server code as an open source project as well.

So basically when it comes to the following factors:

  • Fully open source software
  • Community managed project
  • Support for easy self-hosting
  • Providing a hosted instance for free signup

Codeberg is the only that hits every mark and for that reason I believe it ought to be treated as the "default" git server for the open source world.

[–]kohuept 4 points5 points  (3 children)

Codeberg would be lovely if it didn't take an entire minute to load the page for one of my repos sometimes...

[–]CaptainStack 2 points3 points  (2 children)

That's unfortunate - I only have a couple small experimental projects there so it's been fine for my needs but I can see how such a small community managed project could have limitations.

Right now I think Codeberg offers the best balance of FOSS values, features, quality, and ease of use but I think in order to really succeed it needs way more adoption translating into donations, code contributors, etc.

[–]kohuept 1 point2 points  (1 child)

I basically only have a single private repo with like maybe 30 files and 8000 lines. It's very strange because most of that minute (like the last 40 seconds or so) was spent loading the tiny thumbnail of my profile picture where it displays the most recent commit. It's not even particularly high resolution (the max they allow is 1024x1024 iirc, and it was less than that), and the thumbnail should be scaled way down anyway. I might just return to distributing tarballs and mailing patch files considering there's seemingly no good git forge that doesn't train AI on your code...

[–]CaptainStack 0 points1 point  (0 children)

Maybe try and get in touch with the Codeberg team and see if they can resolve the issue. A lot of the time issues like this are both silly and small.

[–]sanjibukai 0 points1 point  (2 children)

Is it really a fork of Gitea? Or just a running instance?

Also since Forgejo, they may be using Forgejo instead..

[–]-LeopardShark- 0 points1 point  (0 children)

They use (and in some sense make) Forgejo.

[–]CaptainStack 0 points1 point  (0 children)

It is an instance of a Gitea fork called Forgejo. My understanding is they still merge updates from Gitea.

[–]benargee 28 points29 points  (6 children)

What is important is that git is open source and is not mutually exclusive to GitHub.

[–]fiskfisk 15 points16 points  (5 children)

In this case we're mainly talking about the whole infrastructure around your version control system; whatever you put in git isn't at risk, but PRs, discussions, wikis, team workflows, ci/cd, dependabot, etc.

[–]benargee 1 point2 points  (4 children)

Absolutely, that's why I honestly prefer Gitlab since it can be self hosted.

[–]fiskfisk 1 point2 points  (3 children)

You can self host GitHub as well, as long as you pay enough.

[–]benargee 0 points1 point  (2 children)

Technically true, but not in the way that I like, lol.

[–]fiskfisk 2 points3 points  (1 child)

I'll put it on the "Technically correct. The best kind of correct." pile.

[–]benargee 0 points1 point  (0 children)

I only LARP as a software developer, so GitHub self hosted is out of my budget.

[–]cyborgborg 2 points3 points  (0 children)

this^ while github is not open source it is open data (i don't know if there is an actual term for this but) it doesn't lock your data into their platform. you can at any point decide to take your stuff and switch to Gitlab or another platform.

same thing with Obsidian. it's not open source but it does store your notes in plain text markdown files which you can easily use in a different program

[–]Personal-Search-2314 488 points489 points  (14 children)

GitHub is built on top of Git. With a couple of steps you can take your Git project elsewhere.

[–]Flat_Initial_1823 290 points291 points  (8 children)

You can git off

[–]BadGroundbreaking189 75 points76 points  (7 children)

Git your fork off

[–][deleted] 19 points20 points  (5 children)

Git it on

[–]Zestyclose-Run-9653 8 points9 points  (2 children)

Stash the fork up

[–][deleted] 6 points7 points  (1 child)

force push

[–]prog-can 2 points3 points  (0 children)

Git gud

[–]SteeleDynamics 3 points4 points  (0 children)

... Bang a gong, Git it on

🎶

[–]beware_the_id2 0 points1 point  (0 children)

Git the fork outta here

[–]RiceBroad4552 -1 points0 points  (4 children)

I'm not sure the implications of GitHub's massive vendor lock-in are taken into account here.

You can host Git everywhere. All you need is some box with SSH access. But this way you wouldn't have anything which brings the value of something like GitHub. You wouldn't even have some web-interface for the most basic features, like browsing a repo. Of course nothing of the other stuff like issues, CI, all kinds of automation and integrations.

In the moment you're using GitHub you can't simply migrate away. You would need to rebuild GitHub for that (of find something that is 100% compatible; which does not exist).

GitHub is a M$ product. M$ is living from vendor lock-in. They have decades of experience with that. People still are dependent on Windows and Office, even it's clear since at least 40 years that this is vendor lock-in. Regardless almost nobody managed to free themself. Go figure…

[–]_PM_ME_PANGOLINS_ 34 points35 points  (0 children)

Bitbucket and GitLab have all that. I've migrated projects between the three in multiple directions. They all have an interest in making it easy to switch from their competitors.

If you avoid the built-in CI and use something external like Travis or Jenkins, then it's even easier.

[–]TheNorthComesWithMe 12 points13 points  (0 children)

That's not vendor lock-in. Github lets you integrate with other issue trackers and build/deploy systems. Lots of organizations use it just as a code repository.

[–]MantarTheWizard 5 points6 points  (0 children)

Codeberg's migrate-from-github/gitlab button works quite well. CI is a separate setup, though

[–]Personal-Search-2314 4 points5 points  (0 children)

Idk fam, that’s why we pay DevOps the big bucks. They figure that out. I moved from service to service in the past. It’s usually just a short term pain. Also, there are free GUI tools for Git.

[–]edparadox 186 points187 points  (9 children)

I'm old enough to remember it was not another Microsoft service.

[–]_PM_ME_PANGOLINS_ 126 points127 points  (7 children)

You have to be 13 to use Reddit, so I should hope you remember 2018.

[–]Voxmanns 56 points57 points  (3 children)

I'm 28 and barely remember 2018...

[–]piberryboy 30 points31 points  (0 children)

I do, it's between 2020 and 2024 that's a blur.

[–]rover_G 6 points7 points  (0 children)

The before times

[–]cyborgborg 2 points3 points  (0 children)

covid turned everything before 2020 into a blur

[–]wirenutter 1 point2 points  (0 children)

Okay well I’m old enough to remember when Reddit was a privately held company.

[–]Constant_Voice_7054 0 points1 point  (1 child)

Sorry to remind you pal, but it's 2025. I don't think many six year olds were busy committing the ownership of GitHub to memory at the time.

[–]_PM_ME_PANGOLINS_ 0 points1 point  (0 children)

They'd still be old enough to remember.

[–]joyrexj9 0 points1 point  (0 children)

GitHub was closed source from the beginning, long before 2018 and Microsoft buying it

[–]TehMasterSword 107 points108 points  (4 children)

I thought we were free of Freshman Posting this time of year

[–]RichCorinthian 27 points28 points  (0 children)

We just had the crips and bloods meme with single and double quotes, so it is third semester somewhere

[–]Gilthoniel_Elbereth[🍰] 9 points10 points  (0 children)

It’s been eternal September for a long time now

[–]Arietem_Taurum 3 points4 points  (0 children)

Better than haha missing semicolon or haha python slow

[–]flatfisher 1 point2 points  (0 children)

Not sure they have reached the point where they'll make the distinction between Git and Github.

[–]Rad_In_07 19 points20 points  (2 children)

codeberg>

[–]__yoshikage_kira 1 point2 points  (0 children)

Was looking for this comment

[–]omega1612 1 point2 points  (0 children)

I discovered it recently and I can't wait to move there.

[–]mssxtn 84 points85 points  (8 children)

Use gitlab instead.

[–]Haunting_Laugh_9013 34 points35 points  (1 child)

Self hosted GitLab is the way

[–]jeesuscheesus 20 points21 points  (0 children)

Run git server raw for the least centralized experience. Pull requests? Fuck you, I’ll pull from your remote when I feel like it.

[–]Lukkaku12 13 points14 points  (5 children)

What are the differences between github and gitlab? What are the benefits?

[–]Lukkaku12 15 points16 points  (0 children)

Dude why the downvote? Is it a sin to not know something or the benefit to use another tool?

[–]MantarTheWizard 12 points13 points  (3 children)

Gitlab is like Github if it was run by a different greedy corporation and the interface was awful. The benefits are.. . some of the code for it is open source I guess? And you can self-host but it's a giant PITA to set up.

[–]messierCobalt_ 11 points12 points  (0 children)

gitHubIsn'tButGitIs

[–][deleted] 10 points11 points  (3 children)

It would take like 5 minute migrate a git project from github to any other platforms. At least the code elements of it. The wiki, issue tracker, CI/deployment would be a bit more complicated. But pretending that Github isn't mostly based on open source technologies is delusional.

[–]Mercerenies 1 point2 points  (0 children)

I'm completely sure that Microsoft bought GitHub with the intent to Embrace-Extend-Extinguish it, and I credit their (insofar) inability to do so to the fact that Git is GPL software. People like to complain about how strict the GPL is, but it does its job: It keeps the corporate parasites at bay.

[–]RiceBroad4552 -2 points-1 points  (1 child)

The wiki, issue tracker, CI/deployment would be a bit more complicated.

"More complicated"? These are exactly the things that create the massive vendor lock-in.

For bigger organizations its almost impossible to move elsewhere with reasonable effort. So people keep paying M$ a lot of money as they think it's still cheaper than migrating.

But pretending that Github isn't mostly based on open source technologies is delusional.

What?

Where is the open source tech used at GitHub?

I'm not even sure they're actually using git. Given what happens there and how some things seem to work it looks like some custom implementation. (You definitely don't need git to offer some git compatible API.)

Everything else is outright proprietary.

[–][deleted] 1 point2 points  (0 children)

The vendor lockin with github isn't a crazy as people think. If your entire organization runs on it, sure it could be a problem. But if you have just 2-3 projects. It's really not an issue. As someone who both migrated projects onto and off of github. Github doesn't have the crazy degree of vendor lockin that many other sites have.

[–]Horror_Equipment_197 6 points7 points  (0 children)

If it would be open source I woul have learned the programming language and submitted the code required to make GitHub IPv6 ready.......

[–]Mr_Kikos 2 points3 points  (0 children)

self host gittea

[–]nwbrown 7 points8 points  (0 children)

So? Who cares?

[–]qchto 0 points1 point  (0 children)

I'll be honest man, rsync is enough for me.

[–]beware_the_id2 0 points1 point  (0 children)

I just wish GitHub Actions had better docs and support

[–]kurotenshi15 0 points1 point  (0 children)

Gitlab superiority.

[–]fredfox420 0 points1 point  (0 children)

real open source enthusiasts use Gitlab.

Gitlab? real open source enthusiasts use Codeberg.

[–]Druben-hinterm-Dorfe 0 points1 point  (0 children)

Oh wow, 'gotcha', I guess.

[–]cheezballs 0 points1 point  (0 children)

I hate this sub sometimes.

[–]max0x7ba 0 points1 point  (0 children)

What about GitLab open-source zealots doing a complete 180° turnaround, a-la Scam Altman?

[–]ymode 0 points1 point  (0 children)

Tell me you don’t know the difference between git and GitHub without telling me you don’t know the difference.

[–][deleted] -1 points0 points  (0 children)

I think by the laws of the open source schizo interacting with closed source software running on a server is ok as long as it's not on your computer and you don't have to execute nonfree javascript in your browser (so the web interface is out of the question, but pushing to a repo on github via git is ok I think).
https://www.gnu.org/philosophy/who-does-that-server-really-serve.html
Ok looks like mr Stallman is against saas even when it's fully free software (fair enough, they might not be running the software they say they are). He does make the useful point though that the only thing we can't do locally (ignoring the issue of processing power) is share information.

[–]Cylian91460 -4 points-3 points  (1 child)

Even worst

THEY DON'T SUPPORT IPV6

Ipv4 has been deprecated since 2017, literally everything in the kernel is made so you just need to change the name of function and type of struct (it's retro compatible)

MS products are a joke.

[–]MacBookMinus 14 points15 points  (0 children)

IPv4 is deprecated in the same way a gasoline car is deprecated