Git and Github for Noobs

Git is open source (free!) version control software which anybody can download and install on their computer. Have you ever downloaded something on your PC which f’d it all up, and then done a system restore to a time in the past that you knew your PC was working? That’s sort of what git can do for development projects. Each time you save a version of the project by performing a commit, a new version of the files is compressed and saved. Old versions are not written over.

You can use git on your computer without internet. When used locally, you control git using the command line. In iWorld, this is called the terminal. Using the command line can seem intimidating because most of us are accustomed to friendlier interfaces.

Besides version control, git also allows people to work on branches of code, which can be added to the main branch, or trunk, if approved.

GitHub is a code repository service which is also free. A repository, or repo, is a fancy word for the master folder of a project. Github’s main goal is to help people collaborate on coding projects.

It has a graphical interface so you can work on git repositories without using the scary command line.

So, GitHub is used for version control and collaboration, but it’s also become somewhat of a social media site. Wired called it “Facebook for Geeks”. They said, “Instead of uploading videos of your cat, you upload software.” If you’re reading this, you’re probably a noob developer, and you’ve probably felt a social push to do something on GitHub. If learning programming was a video game, making a pull request on GitHub would be an achievement. It gives you an “I did it!” feeling. It’s an unstated rite of passage into an undefined level of developerdom.

What is a pull request? It’s a request from you to the manager of a repository asking if they will incorporate the changes you made to their project into the project. You start this process by downloading a copy of the repository. You can either fork the project or clone it. If you fork it, you are creating a copy of the project in your account on Github. It’s on Github’s server, not your local computer. This is what you probably want to do if your goal is to do a pull request. If you clone the repo, it gets downloaded on your own computer, and you have to go through a couple of extra hoops to do the pull request.

If you’re brand new to coding, I wouldn’t recommend messing with pull requests just yet, despite what all the cool kids are doing. You have other goals you should accomplish first, like figuring out which languages to learn, and learning them. And nailing down your goals. It’s very easy in the world of code to get distracted by the next shiny thing, and there are so many shiny things! You’ll reach success if you get skilled at focusing your efforts on a defined goal. You might not know what that goal is for a while, but it will come. Once you think you know what your goal is, then you’ll know whether you ought to spend your time on pull requests and other GitHub hubbub.