This page is still a draft

Please consider editing this file on GitHub. You can follow the editing tutorial

GitHub ELI5

Don’t Panic! The essentials for working on the DIYbiosphere are pretty simple. You could go by without reading this guide and only follow the tutorials. However, understanding a few technicals are very helpful for doing things with more confidence and for building expertise. So let’s get to it!

Why use GitHub in the first place?

The first thing to understand is that the DIYbiosphere project is essentialy a shared folder with a bunch of files inside. GitHub hosts our shared project folder, in much the same way you could host it on Dropbox. The main advantage of GitHub, is that it keeps track of changes to these files by using Git; an open-source distributed version control software. Usually, the software is operated through a terminal but services such as GitHub and GitLab are Git clients that provide a friendly graphic user interface.

How does Git work?

A folder managed by Git is called a repository, or repo. The repo can be stored in your computer (local repo), and/or in a server somewhere (remote repo). Git maintains a history log in a subfolder (.git) where it stores a copy of all the different versions of the files ever made. To record a version of a file, you have to commit, i.e. save the changes to Git. You can compare changes, and revert them if desired.

Git records the changes by maintaining three worktrees:

  • The Working Directory stores the original files.
  • The Index or stage area saves proposed changes.
  • The HEAD stores the latest commits you’ve made.

How collaboration happens?

With Git you don’t need a server since you can use the git repository locally, but if you want to collaborate with others you should use a server to act as the master copy. When multiple users collaborate on a repo, they all have copies stored locally in their computers.

This section is still incomplete. Please consider adding content if you can!!

15 min to learn git


Open Comments Issue in GitHub