aesmithwriting / Git-and-GitHub-Guide

Git and GitHub Guide for Writers
0 stars 0 forks source link

What is Git #1

Open shuttle1987 opened 5 years ago

shuttle1987 commented 5 years ago

Git is a general purpose distributed revision-control system. To unpack this a bit there's a few relevant parts we might wish to write about

Version control

Version control software (VCS) are an important group of software tools for managing workflows that involve keeping track of versions of documents.

Many of these systems are designed around the notion of being able to calculate differences between documents (deltas). Being able to compute differences between versions leads to a number of powerful possibilities (reports on differences between versions, merging changes, referencing change sets directly, creating patches, etc). To be able to compute a difference the files must be stored in such a manner that the software can detect what changed, a plain text file (such as a markdown document) is perfect for this. Any changes to the document will always be seen in the lines of the file that were responsible for it. This is in contrast to some other file types like old word document files where a change to one line is hard to locate in the file, or images where changing the file won't lead to a nice textual summary of what changed.

Distributed vs centralized

Git is a decentralized version control system. Practically speaking this matters for the following reasons:

There are some downsides to the decentralization, mostly that you have to have a strategy for maintaining a single source of truth that people know they can refer to. GitHub makes this step easy if the repository is the single source of truth. The other downside is that you can't have a real time collaborative editing experience that's as smooth as the centralized offerings like "google docs" for example.