Git and GitHub have completely changed the way we work in web development. They provide a centralized, cloud-based location to store, share, publish, test, and collaborate on web development projects. Git revolutionized version control—crucial when you have more than one developer working on a project. GitHub has added a staging platform that lets developers share prototypes, collaborate on projects, edit and build upon each others’ code, and give stakeholders a chance to take in-progress work on a test run.
Boiled down, Git is a web-based platform for working on projects, and GitHub brings those projects to life.
In this article, we’ll look at the basics of how each works and how they’ve helped to shape the workflow of digital teams like the ones built here at Upwork.
The Basics of Git
Git is used by programmers, developers, and designers to store projects and keep track of changes to their files. It’s a cloud-based server that’s revolutionized real-time collaborative work between digital teams.
When software is referred to as open-source, it means it’s been made available to download for free—usually on GitHub. Just download the code and start using it, or building onto it.
Other reasons why developers rely on Git:
- Collaboration made simple. A programmer uploads code to Git, where other developers can access it and edit it, isolated from each other and with all versions kept intact. Git takes away any confusion with having multiple people work on the same file at the same time.
- Version control made easy. Every time edits are made to code, Git takes a snapshot. This tracks all the versions of a project along the way, saving a previous snapshot each time the file is saved in its “current state”—this is called a commit. Snapshots also let you revert back to old versions if something “breaks.”
- Git has three main areas that are uniquely designed to give developers lots of control over workflow:
- A working directory, which contains current states of files. Numerous developers can access a directory when they’re logged in, so collaboration is easy.
- The staging area, which contains indexes of everything for the next commit, and any files that have been added or edited since the previous save.
- The Git repository, where new commits are added. A Git repository contains (a) all the metadata, (b) the files, and (c) a dedicated database that tracks versions of the project.
- Branches are one of the most important parts of Git, and make collaborating and incrementally adding to code possible, and foolproof. Developers and designers can work on the same project in an organized way—especially digital teams with remote freelancers. In a branch, some or all of the code is isolated from the project so it can be worked on without affecting the master branch. That code can be experimented with and worked on, then either made into its own, new project, or merged back into the original branch.
The Basics of GitHub
GitHub is Git’s cloud-based publishing tool and hosting platform. It also has a desktop application for locally storing projects. With GitHub, you can:
- Bring projects to life. Git repositories are hosted on GitHub and made “live.” This enables developers to post a site or application when it’s in development stages. By sending a link to a GitHub project, clients can easily test-drive a site in progress with functionality, rather than just looking at flat mockups.
- Browse the most popular development projects. Browse GitHub for “trending” repositories—an interesting way to check out other developers’ work and check out “starred” projects that are recommended by GitHub staff members. Public repository files can be downloaded as zip files and saved locally on your computer.
On GitHub, you can Star, Watch, and Fork:
- Fork: Make a copy of a project and start working on it yourself.
- Watch: Get updates when changes are made to a project you’re following.
- Star: GitHub’s version of the “Like” button on Facebook, it’s a voting system that enables developers to vouch for projects they think are excellent.
On the collaboration front, GitHub also lets team members set up the following:
- Issues: These keep track of what collaborators are doing and lets them ask about bugs. Issues can be opened or closed once they’re addressed.
- Milestones: Set these up and give collaborators goals to work toward.
Have a Remote Digital Team? GitHub Is for You
With an emphasis on speed, data integrity, and excellent support for distributed, non-linear workflows, Git is the gold standard for remote digital teams. Also, Git is convenient for working offline or without a VPN (virtual private network), making it easy for developers to work on the go and stay productive. For teams rapidly building sites and prototypes for customers, GitHub is an efficient, safe and seamless way to get projects reviewed, approved, and signed off on.