Version control of a project or website’s files is a requirement for any designer or developer. Although many use an ad-hoc system of their own making to name backups and organize file iterations, use of version control tool is really a necessity. And if one is working with a team, keeping track of all of those files among different individuals soon becomes a nightmare without one.
Git is perhaps the most well-known version control system today, but many are reluctant to consider its use, mostly because of some myths about its usability and learning curve. However, given the excellent tutorials available for Git beginners, plus the GUI tools that eliminate the need for a code-based interface, it is time to consider embracing Git.
In this month’s article, we’ll look at some resources that explain the benefits of Git, as well as others that show you how easy it can be to use Git. Embracing Git can improve your productivity by simplifying code change tracking and — when needed — restoration of earlier versions of a project. So let’s delve into Git and “git” (pun intended) going!
Introduction to Version Control
Few, if any, of those who design or develop for the web would claim that version control is unimportant. The ability to go back to an earlier version of the entire project — or just an earlier version of one specific file among thousands — is essential.
Different developers use different techniques, but few of us are capable of sustained, detailed, painstaking attention to keeping track logically and consistently of each change that has been made, where it was made, what effect it has, and when it took place. Even when working on a project that doesn’t involve other developers, it can be not just time-consuming, but also very complex, to track every change so that recovery is easily made when mistakes occur. A team development environment only exacerbates the problem.
BetterExplained.com has a nice article with plenty of visuals that show the basic structures and functionality that are needed for a realistic version control system for today’s types of projects — and how such a system can make development so much easier.
Git is but one of a variety of version control systems you could use, so why choose Git? For many reasons, but perhaps the most compelling is that it is the most widely used. Start with learning how to use Git for your projects and then you’ll not only have knowledge of a very popular system that will get you access to more projects than you can imagine. And then if you later decide to learn other version control systems, you will have a strong base from which to proceed.
Getting Started with Git
Here are some resources to help you get started using Git.
1. Git Immersion – A Guided Tour — This collection of 50-plus lab exercises walks you through just about every aspect of Git, providing an exercise for each that makes it extremely easy to understand the concepts and see the results of each. The step-by-step approach introduces you to Git terminology, complete with instructions and the output that you should see after completing the steps. Taking this tour will quickly have you comfortable with Git.
2. ProGit Book — This book is a more detailed look at the possibilities of Git and requires a little higher level of code familiarity to work through. Available in a number of different languages and formats (print vs. digital), it covers a wide range of Git capabilities and is particularly good at explaining the benefits of Git versus other version control systems.
3. Community Book — This book from a group of Computing Science students at Stanford University equates Git to a collection of magic tricks in an effort to help others learn how to use it. Starting from the premise that one need not be afraid of Git because of its apparent complexity, the book calls upon users to consider each aspect as a magic trick. Learn Git by doing it in bits and pieces, and eventually you will understand how the “magic” works from repeated exposure to the commands and results. It’s an interesting concept, but whether or not you agree with it, the straightforward approach to making Git easier to get a handle on will definitely benefit those who are still cautious about its usability.
4. Learn the Basics of Git — This is a short tutorial that covers the basics of using Git with screenshots of a simple use of many of the concepts. Although good for a general introduction, those who are not used to working in the command line interface may be dismayed by the focus placed on it in this tutorial. Keep in mind that graphical user interfaces for Git exist (see further along in this article for examples) to make the process much easier for those not as familiar with this approach to development.
5. Git Screencast: Git in Action by Ralf Ebert — This 17-minute long Vimeo tutorial is a nice presentation of the basic Git commands in a simple file structure showing how Git functionality works. If you are a visual learner, first gain an understanding of some of the basic Git terminology (from one of the other resources identified here) and then flesh out that knowledge with this tutorial. Actually seeing the commands produce changes on-the-fly to directories, etc., can be more understandable than static screenshots for those not as code-heavy in their past experience.
6. A Visual Git Reference — Although a static presentation, this resource provides more than just an explanation of the terminology of the Git functions and processes — its diagrams illustrate the relationship between different areas of a Git-organized project and the files in each area using the family tree approach. It quickly and easily explains not only how to carry out certain functions with Git, but also the implications each has for other files in the project.
7. Learn Version Control With Git (ebook, video course and webinar) — This multi-purpose approach to learning Git is well-planned and executed. It is offered in three different formats — all free — of an ebook, a 20-plus video course, or a 45-minute webinar. For a basic introduction, the webinar is a great resource, while the videos let you pick and choose among the topics covered for those that apply most to your needs and interests. The ebook comes in a free online version (or paid downloadable version) and includes many illustrations and examples.
8. Git Ready — This resource is more suited to those who have mastered some of the basic concepts of version control and are looking for tips or ideas on specific commands or tasks they are having difficulty with. The tips provided are divided into beginner, intermediate and expert categories and may answer some of the questions that have been confusing you as you learn Git.
9. TryGit — CodeSchool is a great place to learn a number of different programming languages, and their Git online course called TryGit is no exception. The basic beginner course in Git is free and explains the basics in a fun and easy-to-learn manner. Intermediate and expert courses are also offered.
1. Tower – Git client for Mac — If you are a Mac user and looking for a graphical user interface (GUI) for Git, Tower may be the solution. By removing the need to access the command interface, Tower lets developers easily incorporate the functions of Git into their more-familiar use of the Mac directory control. A trial download is available for 30 days, after which the products costs $59. Help and a support area are included. Integrates easily with all the basic Git-based tools.
2. SourceTree — Windows users, as well as Mac, can turn to SourceTree for a GUI for learning and using Git. It also works with Hg (Mercurial). Not only does SourceTree make it easier for those who prefer to work in a graphical interface over the command line, the software is designed for both platforms of Mac and Windows (Windows 7 and up). It’s a free download as well.
3. Gitbox (Mac) — Developed by Oleg Andreev, Gitbox is a Mac-only tool. It features one-click functionality of many of the Git commands, plus works with submodules. Available via download or on the App Store for $14.99 and updates are free.
4. GitZ-Dev — As an update to the earlier GitX, this tool is for the OS platform only. The improvements include faster performance on large file repositories, a better updating system inside the app itself, and less reliance on the command line method of Git use.
1. GitHub for Beginners: Don’t Get Scared, Get Started — If you are still a little confused about Git, or can’t seem to grasp how much positive influence it can bring to team projects, you need to learn about GitHub. This two-part article will show you how GitHub is really a social media platform not just for developers but for anyone who wants to share and/or collaborate on computer-based projects. The message is that you don’t need to be a hard-core coder to benefit from using GitHub to expose your projects and ideas to a wider world (or restrict it to team members separated by distance), and the article explores the various ways in which that is the case. It also includes a nice summary of the core Git commands, all from the point of view of a self-proclaimed code newbie.
2. How the Heck do I use GitHub? — Lifehacker is an excellent site on which to find basic information on how to integrate useful ideas and/or tools into your life to save time, effort, and money. This article on how to use GitHub is no exception. Although it falls short in being a complete guide to using GitHub, it does excel in helping the uninitiated set up and start using GitHub to set up a basic project that will rely on Git to achieve version control and revision synchronization.