First, we need to install Git: the version control software.
Open a terminal on your Windows or Mac and then write the following commands:
cd project_name
git init

4.1.1. Create a file named index.html containing a simple <h1> tag </br> 4.1.2. Git does not know about the file index.html. We can check the tracked files using the following command:
git status
4.1.3. The git status command allows you to know the status of the project: If it is initiated, modified, staged

4.1.4. For Git to recognize this file, we need to add it to the staging area and create a commit.
There are multiple ways to add files to the staging area.
git add filename
git add filename1 filename2
git add .

4.1.5. To remove a file from the staging area, we need to use the following command:
git rm --cached filename
A commit allows us to create a snapshot of the project state at that point of time. To create a commit, we use the following command with -m stands for message and we list the message associated with this commit.
git commit -m 'your message'
The message should be short and accurately describes the changes made. A clear message would allow us to identify a specific commit and eventually roll back to that state if needed.

To list all commits in The Local Repository
git log
To list only latest 3 commits
git log -p -2
To go back to a specific commi
git checkout commitID
Commit types
| Commit Type | Title | Description | Emoji |
|---|---|---|---|
feat |
Features | A new feature | ✨ |
fix |
Bug Fixes | A bug fix | 🐛 |
docs |
Documentation | Documentation-only changes | 📚 |
style |
Styles | Changes that do not affect the meaning of the code (white space, formatting, missing semicolons, etc.) | 💎 |
refactor |
Code Refactoring | A code change that neither fixes a bug nor adds a feature | 📦 |
perf |
Performance Improvements | A code change that improves performance | 🚀 |
test |
Tests | Adding missing tests or correcting existing tests | 🚨 |
build |
Builds | Changes that affect the build system or external dependencies (e.g., gulp, broccoli, npm) | 🛠 |
ci |
Continuous Integration | Changes to CI configuration files and scripts (e.g., Travis, CircleCI, BrowserStack, SauceLabs) | ⚙️ |
chore |
Chores | Other changes that do not modify source or test files | ♻️ |
revert |
Reverts | Reverts a previous commit | 🔄 |
First, we need to create an account GitHub.

git remote add origin https://github.com/user/repo.git
For the first push, we need to use this commend:
git push --set-upstream origin master
OR
git push -u origin master
git pull
git clone URL_OF_REPO
The branch is the copy of the main(or master) at branching instant. After branching, the branch and the master don’t see each other. You can create as many branches as you want.

git branch branch_name
git checkout branch_name
git checkout -b branch_name
git merge branch_name
git branch
To rename any existing branch
git branch -m <old-name> <new-name>
To rename the current branch
git branch -m <new-name>
The branch must be fully merged in its upstream branch.
git branch -d branch_name
OR Use the flag -D to force the branch delete.
git branch -D branch_name
A fork is a personal copy of someone else’s repository, created under your own account.
Forks are mainly used when you do not have write access to the original repository.
They allow you to freely experiment, make changes, and propose improvements without affecting the original project.
When you fork a repository:
You should use a fork in the following situations:
Contributing to open-source projects
(You are not a member of the original team)
Working on repositories you don’t own
(No direct push permissions)
Submitting assignments via GitHub Classroom
(Each student works on their own forked repository)
Forks are a safe and standard way to collaborate without risking the stability of the original project.
| Feature | Branch | Fork |
|---|---|---|
| Location | Same repository | New repository |
| Permissions | Requires write access | No write access needed |
| Use case | Team collaboration | External contributions |
| Ownership | Shared | Personal copy |
A Pull Request (PR) is a way to propose changes to a repository and ask the project owner (or teacher) to review and merge those changes.
Instead of directly modifying the main branch, you submit your work for review.
👉 A Pull Request means:
“Here are my changes. Please review them and decide if they can be added.”
Pull Requests are important because they:
They are commonly used in:
A typical Pull Request workflow:
git checkout -b feature/my-changes
git add .
git commit -m "Describe your changes clearly"
git push origin feature/my-changes
The reviewer can:
If changes are requested, you can update your code and push new commits to the same branch.
| Action | When to use |
|---|---|
| Direct push | You own the repository and work alone |
| Pull Request | Team work, forks, classroom submissions |
Pull Requests are safer and more professional.
Git SCM. Git Official Documentation.
https://git-scm.com/docs
GitHub. GitHub Documentation.
https://docs.github.com
Learn Git Branching. Interactive Git learning platform.
https://learngitbranching.js.org
GitHub Education. Git Cheat Sheet.
https://education.github.com/git-cheat-sheet-education.pdf
This educational content is licensed under the
Creative Commons Attribution–ShareAlike 4.0 International License (CC BY-SA 4.0).