Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This tutorial is for starting to use the version control software named Git. According to ProGit (super recommended material, available for free here: book

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later

Version control is a fundamental tool to keep track of the changes of any type of digital content. This applies naturally to text documents, and the most common application of version control is for software developing. 

In order to keep track of progress and have an idea of the different versions your software is adopting through time Git provides you with many utilites and at relatively low effort.

Main concepts and terminology

We will refer as repository to a project's version controled files. This can be a local directory as well as a remote server directory. 

Each time we are doing version control of a repository with Git we are tracking changes in the repository by using time snapshots of the repository state. So, in short Git can be understood of a stream of snapshots. 

Distributed version control

Git is a distributed version control system.  This means that each Git repository is a complete mirror of the repository's history. Every time we make a checkout we copy the full we are doing a full backup of all the snapshot data history.

This also brings an important feature to Git: every operation is done locally. At some point we will push our changes 

Multiple repos

When you clone a repository you are again, copying the entire history. The same applies to GitHub repos, so, in few words you have multiple independant copies of the full version history.

Versioning your files

Let's start running some commands and using Git.

Creating a repo

Let's imagine we have a bunch of files in the following manner:

~$ ls Devel 
   project

~$ ls Devel/project 
   hello_world.py
   foo.py
   bar.py


Artículos Relacionados

  • No labels