About the course
Git & GitHub for beginners
Get started with learning how to version control and collaborate on your projects with Git & GitHub.
As a developer, writer, or creator, you all deal with files every day. At some point, you are dealing with making new files or changing the old files and then saving it all over again. But how do you track the file changes that are being made over time? It was this simple question that prompted the development of version control systems.
Linus Torvalds, the creator of the Linux kernel, was prompted to develop a distributed version control system when the license for BitKeeper, an existing version control system, was revoked, which is today known as Git. Today, Git is universally used worldwide for version controlling the files and is now integrated into various popular services to manage applications and data.
However, the technical jargon around Git is quite challenging to understand. You might know how to make a commit to save your changes, but how do you squash your commits? How do you resolve a merge conflict and collaborate with other developers?
These are some of the questions that leave developers prowling across Stack Overflow threads looking for answers. This course aims to get you started with Git from a completely non-technical perspective and help you upskill yourself in Git with real-world examples.
You don’t need to prowl for commands any longer, and you will understand how you can develop mental models around Git and its practical usage. With interactive lessons, real-world analogies, and scenario-based exercises, you will learn how to use Git with GitHub, a Git hosting service, while employing a host of services.
- You will be able to understand various Git commands and develop a mental model around them.
- You will understand how to collaborate on GitHub and work with a team using various features.
- You will understand the need for Git and what role does version control plays, by deploying your own code.
- You will follow straight objectives while dealing with debugging Git-based issues and understanding the structure.
1. Chapter 1: Version Control System & Git
Objective : Develop an understanding of version control systems and Git.
- Why a version control system?
- What is Git?
- Understanding Git workflow.
- Understanding Git objects and file system
- Installing and configuring Git.
- Git vs GitHub: What’s the difference?
Task : Develop an understanding of why teams use Git and what are difficulties they would face if no version control system is used.
2. Chapter 2: Getting started with Git
Objective : Version-controlling your project using Git!
- What is a Git repository?
- Creating a repository on GitHub and cloning it.
- Adding and committing changes in a Git repository.
- Best practises for using git
- Pushing your commits to GitHub.
- Time travelling with Git.
3. Chapter 3: Git & GitHub
Objective : Learn to collaborate using Git and GitHub!
- Managing collaborators on your repository using GitHub.
- Pulling changes to your repository.
- Understanding merging in Git.
- Resolving merge conflicts in Git.
- Parallel development with Git branches.
- Doing code reviews with pull requests.
Task : Quiz
4. Chapter 4: Contributing using Git & GitHub
Objective : Understanding the GitHub Flow of contribution
- Contributing through the fork-clone workflow.
- Managing remote repositories using Git.
- Keeping your fork up to date.
- Replaying changes in Git using rebase.
- Saving changes without committing in Git.
Task : Fork a repository and make a pull request to the student repository of this class. Resolve the suggestions made by a review bot and squash commits at the end. Send a PR after it has been merged.
5. Chapter 5: Open-Source
Objective : Contributing to Open-source projects
- What is open-source software?
- Leveraging documentation to set up projects.
- Finding good first issues to work on.
- Fixing issues using pull requests.
- Validating changes using automated tests.
- Following good open-source etiquettes.
Task : Find an issue on any significant open-source project and propose an interest to work on it. Follow a fork-clone workflow in line with the project’s contributing guide and raise a pull request. Make sure all automated checks pass and is reviewed by a maintainer for correctness.