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.
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.
In contrast with Centralized Version Control Systems (CVCSs), the distributed nature of Git allows you to be far more flexible in how developers collaborate on projects. In centralized systems, every developer is a node working more or less equally with a central hub. In Git, however, every developer is potentially both a node and a hub; that is, every developer can both contribute code to other repositories and maintain a public repository on which others can base their work and which they can contribute to.
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.
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.
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.
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.
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
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
https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
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.
Git was built specifically to avoid the necessity to have one authoritative server.
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.