This post intends to be a brief introduction to what Git is and why could it be useful for you –as it is for me– in any creative scenario, trying to avoid technical details.
Git is a version control system initially developed by Linus Torvalds for Linux. It is a command line application that works on Windows, OS X or Linux.
According to Wikipedia, version control is the management of changes to documents, computer programs, large web sites, and other collections of information.
Git, as other version control systems, allows you to track changes of files contained in a folder, in order to store and manage their different versions over time.
The purpose of Git is to manage a project, or a set of files, as they change over time. Git stores this information in a data structure called a repository.
— Charles Duan
Version control systems are organized in repositories. A repository is a place, building, or receptacle where things are or may be stored. In version control systems, each of these repositories will act as a place for you to store all the different versions of the files in one of your projects. Then, you will be able to go back in time to previous versions of your working files if you want to reverse changes or restore old versions.
Usually, each repository contains a single project (e.g. a website, an InDesign project), but it can also contain a set of projects which are somehow related.
Repositories can be stored in your computer or in the cloud, using online services like Github or Bitbucket, and they can be public or private.
I find Git really really useful for versioning any kind of project which does not deal with huge file formats –such as video or photo edition or 3D modelling. Any other kind of project is suitable for being tracked over time as its files change.
If you host your repositories in online services such as GitHub or Bitbucket, every time you save changes of a file it will have to be uploaded to its repository.
Currently, I am controlling changes in projects of programming, writing, design or architecture. Files for Web development, iOS development, text documents, CAD projects or document layouts.
I have some public repositories on Github, and my private repositories are hosted on Bitbucket, as they offer unlimited free private repositories.
Only one folder. Only one file.
The main advantage I found is that I no longer need to rely on local backups when I modify things, as this is basically what Git does for me. Every time I commit and push my file changes to the project's repository, a version of the modified files is uploaded and will stay there after future changes. The files which haven’t been modified stay the same.
You no loger need to use external or cloud drives –like Dropbox or Sugarsync– to backup your projects. As you can just go back in time and browse every file version that you commited.
Access all your previous file versions.
Git offers a functionality similar to what Dropbox does when you can browse previous versions of your files, with the difference that you decide when to save a new version, and you can attach a comment to each of your new commited changes. Another difference is that all your commits stay forever, and old versions of files don’t need to be deleted.
If after reading this post you are still want to know more about Git, you can check my Git Notes, with all the basic stuff I have learned since I started using Git. Also, you can hear more on my tweets and tell me about how you control the different versions of your projects’ files. Thanks for the support of Paul Birch, #sundaypost and HelpMeWrite.