this post was submitted on 07 Jul 2024
497 points (92.6% liked)
Memes
45727 readers
1019 users here now
Rules:
- Be civil and nice.
- Try not to excessively repost, as a rule of thumb, wait at least 2 months to do it if you have to.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Git is not a blockchain. Most importantly, it's not distributed. There's a singular git server that all git clients for that repository connect to and use as a source of truth.
Git was built specifically to avoid the necessity to have one authoritative server.
https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
That is patently false. It was developed to help develop the Linux kernel, which famously has multiple decentralized repositories managed by different maintainers.
The fact that most companies use it in a way you describe, with only one central repository, does not mean that git is not distributed.
I agree it's not a blockchain, (although it has chain properties) but it is kinda decentralized. By convention projects almost exclusively have a single remote, and by convention that single remote is treated as an ultimate source-of-truth... But you can absolutely have the same repo with multiple remotes defined, and one could establish different schemes to determine which branches on which remotes represent what in terms of "truth".
I've pulled code branches between my computers without publishing to an external server plenty of times. It's a really useful feature to be able to keep stuff in sync with a version history.
Counterpoint: it is a chain and there absolutely is not one server.
For each project there is one authoritative instance, one "server" that everyone pushes to. Otherwise you get chaos.
That's not a git thing though. You can totally have multiple remotes and the remotes are just git repositories themselves. Git is 100% decentralized. There is technically nothing stopping you from having multiple remotes.
That may be how you use it, but that's not baked into git. See my previous response. There's a bunch of FUD in this thread for some reason.
People want simple answers, and "blockchain bad" seems to satisfy many
Otherwise you get git. You're describing svn.
And nobody ever forked a project, and lived happily ever after, then end.
If you want to work with the original project, you have to push to the server that controls the original project.
No you don't, you can just fork it, add a commit, and walk away, and everyone can decide which one they want to clone