You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 31, 2022. It is now read-only.
Get started with learning how to version control and collaborate on your projects with Git & GitHub.
Description
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.
Course outcomes
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.
Course Outline
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.
Task: Make a static website using HTML, CSS, JavaScript while making proper commits for your changes. Push the website to a GitHub repository and deploy on GitHub pages.
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.
The text was updated successfully, but these errors were encountered:
Thanks for submitting a new course @HarshCasper. Here are a couple of suggestions:
We need a title and description for each chapter. The objective that you have can become the description. You can try adding a short title for each chapter instead of just calling it "Chapter 1" etc.
The current course framework doesn't have a place for a task. I suggest you to leave them in this issue and we'll figure out how to add the tasks once you make some progress with the course.
Please send a PR with a course.yml file. You can look at existing course.yml files in the repo for reference.
About the course
Title
Git & GitHub for beginners
Subtitle
Get started with learning how to version control and collaborate on your projects with Git & GitHub.
Description
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.
Course outcomes
Course Outline
1. Chapter 1: Version Control System & Git
Objective: Develop an understanding of version control systems and Git.
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!
Task: Make a static website using HTML, CSS, JavaScript while making proper commits for your changes. Push the website to a GitHub repository and deploy on GitHub pages.
3. Chapter 3: Git & GitHub
Objective: Learn to collaborate using Git and GitHub!
Task: Quiz
4. Chapter 4: Contributing using Git & GitHub
Objective: Understanding the GitHub Flow of contribution
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
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.
The text was updated successfully, but these errors were encountered: