One of the crucial differences between blockchain and Git is that Git is fully subserviant to humans and anything can be undone by humans.
If your blockchain house title is stolen by a hacker, either the courts (rightfully) aren’t going to put any significance on the state of the blockchain and are going to say “yeah, you still own your house” (in which case what was the point of using blockchain in the first place rather than a SQL database or some such where mistakes and problems and fraud can be undone without cryptographically-hard obstacles in the way) or if in this hypothetical the Libertarian dystopia has progressed to cartoonish extremes, you’re just SOL and lost your house, which just isn’t even remotely realistic.
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.
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.
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.
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 a real-life use-case
One of the crucial differences between blockchain and Git is that Git is fully subserviant to humans and anything can be undone by humans.
If your blockchain house title is stolen by a hacker, either the courts (rightfully) aren’t going to put any significance on the state of the blockchain and are going to say “yeah, you still own your house” (in which case what was the point of using blockchain in the first place rather than a SQL database or some such where mistakes and problems and fraud can be undone without cryptographically-hard obstacles in the way) or if in this hypothetical the Libertarian dystopia has progressed to cartoonish extremes, you’re just SOL and lost your house, which just isn’t even remotely realistic.
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.
https://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows
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
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.