What Is Git? Thank famed software developer Linus Torvalds for Git the software that runs at the heart of GitHub. (And while youre at it go ahead thank him for the Linux operating system too.) Git is version control software which means it manages changes to a project without overwriting any part of that project. And it not going away anytime soon particularly since Torvalds and his fellow kernel developers employ Git to help develop the core kernel for Linux. Why use something like Git? Say you and a coworker are both updating pages on the same website. You make your changes save them and upload them back to the website. So far so good. The problemes when your coworker is working on the same page as you at the same time. One of you is about to have your work overwritten and erased. You and your coworker can each upload your revisions to the same page and Git will save two copies. Later you can merge your changes together without losing any work along the way. You can even revert to an earlier version at any time because Git keeps a snapshot of every change ever made. GitHub makes Git easier to use in two ways. First if you download the GitHub software to yourputer it provides a visual interface to help you manage your version-controlled projects locally. Second creating an account on Build software better together brings your version-controlled projects to the Web and ties in social network features for good measure. Words People Use When They Talk About Git In this tutorial there are a few words Im going to use repeatedly none of which I heard before I started learning. Here the big ones Command Line Theputer program we use to input Gitmands. On a Mac it called Terminal. On a PC it a non-native program that you download when you download Git for the first time (well do that in the next section). In both cases you -basedmands known as prompts into the screen instead of using a mouse. Repository A directory or storage space where your projects can live. Sometimes GitHub users shorten this to repo. It can be local to a folder on yourputer or it can be a storage space on GitHub or another online host. You can keep code files files image files you name it inside a repository. Version Control Basically the purpose Git was designed to serve. When you have a Microsoft Word file you either overwrite every saved file with a new save or you save multiple versions. With Git you don have to. It keeps snapshots of every point in time in the project history so you can never lose or overwrite it. Commit This is themand that gives Git its power. When youmit you are taking a snapshot of your repository at that point in time giving you a checkpoint to which you can reevaluate or restore your project to any previous state. Branch How do multiple people work on a project at the same time without Git getting them confused? Usually they branch off of the main project with their own versions full of changes they themselves have made. After theyre done it time to merge that branch back with the master the main directory of the project. Setting Up GitHub And Git For The First Time First youll need to sign up for an account s on Build software better together . It as simple as signing up for any other social network. Keep the email you picked handy; well be referencing it again soon. You could stop there and GitHub would work fine. But if you want to work on your project on your localputer you need to have Git installed. In fact GitHub won work on your localputer if you don install Git. Install Git for Windows Mac or Linux. Creating Your Online Repository Now that youre all set up it time to create a place for your project to live. Both Git and GitHub refer to this as a repository or repo for short a digital directory or storage space where you can access your project its files and all the versions of its files that Git saves. Go back to Build software better together and click the tiny book icon next to your username. Or go to the new repository page s if all the icons look the same. Give your repository a short memorable name Creating Your Local Repository So we just made a space for your project to live online but that not where youll be working on it. The bulk of your work is going to be done on yourputer. So we need to actually mirror that repository we just made as a local directory. Thiswhere we do some heavymand line typingis the part of every Git tutorial that really trips me up so Im going to go tediously intelligence-insultingly slow.