4 ms·
Git is powerful. While the underlying architecture has beautifully simple aspects arguing that the complexity of the git tool-chain is simple is similar to argu
by heisenbit 10y ago
Git is powerful. While the underlying architecture has beautifully simple aspects arguing that the complexity of the git tool-chain is simple is similar to arguing that TeX is simple as it is written in a simple language. Git is managing trees of file-sets in a distributed manner. It took many generations of configuration management systems to get there.
Git is bottom up. Understand the inner workings and you know what you can do. But coming from a user perspective there is a gap - first one needs to wrap ones head around the tool. Git imho. is more a framework than a tool. On Stackoverflow simple questions yield different answers all yielding results but having various trade-offs. Usability is also about orthogonality and looking from a user perspective (not an implementation perspective) Git offers often quite a number of paths getting to a certain goal.
Individuals, teams and tooling all trying to settle on certain workflows enabled by git effectively deciding to use only a subset. Particularly when it comes to teams agreeing on workflows becomes important. Git as a tool is here helpful in the sense that it enables almost everything. But for a team it takes more than agreeing on using Git. Other tools come with more comprehensive practices.
- KKKKkkkk1 10y agoAs a tangent, I think calling git a distributed system is misleading. Git is primarily a history manager for a local directory tree that has commands to sync with remote machines. Having to type stuff like git remote add mothership ssh://foo@bar.baz git push mothership in order to sync is not what I usually associate with a distributed system. The word distributed conjures something that's more like dropbox, where things sync transparently.
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- qznc 10y agoBeing distributed is essential for gits design. It explains why there are strange sha1 ids instead of incremental revision numbers like with svn, for example.
- nicky0 10y ago"Distributed" means something other than what you think it does. Dropbox is not a distributed system. In fact it is a good example of a centralised system.
- deleted 10y ago[deleted]
- smilliken 10y ago"Distributed" is, by popular convention, associated with systems that span multiple computers (or even processes on the same computer). "Decentralized" is associated with systems without a central point of failure or control. Git qualifies as both, and Dropbox only qualifies as distributed.
- deleted 10y ago[deleted]
- GirlsCanCode 10y agoExactly. Git does things I used to need Perforce and a full-time Perforce admin to do.