Skip to main content

Command Palette

Search for a command to run...

Git for Beginners: Basics and Essential Commands

Published
•5 min read•View as Markdown

What is Git?

Git is simply a tracker system that helps develops to track, save, and manage changes in their code over time. It is a Version Control System (VCS) that keeps the details of all the changed versions. It basically takes a snapshot of the versions so that if anything breaks in future, then we can go back to the previous snapshots.

In simple words, Git is a tracker that keeps a track to our project, which helps us to know about :-

  • What changes were made?

  • Who made the changes?

  • When it was made?

Because of this, we can compare and revert changes, fix bugs by removing that part or snapshot, and maintain our code efficiently.

There are many VCS like git that helps us to track changes.

Example: Mercurial, Perforce etc..


Why Git is Used?

Git is used to manage constantly changing code.

Imagine you are writing a code file:

  • You made some changes

  • You made some another changes next day, your code is becoming large

  • Some bugs arises and your code breaks, you want the old version

Without git

You fear of breaking the code and you making files like:

project.doc
project_final_v1.doc
project_final_v2.doc
project_final_latest.doc

With git

  • Git tracks what and when changed,
    & who made the changes

  • You don’t need multiple copies

  • All the versions are managed and safe

  • You can freely make changes without fearing code breaks

  • You can go back to any previous version at any time


Git Basics and Core Terminologies

Git doesn’t save changes by its own, we need to give it commands to perform actions, but before that we need to understand some basic terminologies related to git.

1. Repository

A Repository, also known as repo, is the project folder tracked by git.
It contains all the code files along with the .git folder (keeps the change history).

2. Working Directory

The working directory is the actual place where we write the code. Git observes changes, but does not save them unless we ask it to.

3. Staging Area

Staging Area is the place where you arrange changes that are needed to be saved. It simply tells what changes will be saved in the next commit.

4. Commit

Commit saves the changes that were present in the staging area, along with a message of what was changed. It simply takes the snapshot at that specific moment.

Each commit:

  • Has a unique Hash

  • A commit message describing about the commit

  • Points to its previous commit

5. Branch

Branches allow multiple developers to work independently and safely merge changes. A branch lets you work on a new feature or fix without changing the main code.

6. Head

It is a pointer to the current location in your project. It tells Git which branch or commit you are currently working on.

Common Git Commands

Commands help us to talk with git, and tell when and what to save. It helps us to manage the repo.

1. git init

Initializes a new Git repository in your project folder.

git init

This command:

  • Creates a hidden .git folder

  • Tells Git to start tracking the project

  • Is run once when starting a new project


2. git status

Shows the current status of your project.

git status

It tells you:

  • Which files are untracked

  • Which files are staged

  • Which files are modified


3. git add <filename>

Adds a specific file to the staging area.

git add <filename>

This command:

  • Prepares only that file for commit

  • Does not create a commit

  • Lets you choose what to save


4. git add .

Adds all changed files to the staging area.

git add .

This command:

  • Stages all modified and new files

  • Should be used carefully in big projects


5. git commit -m "commit msg"

Saves staged changes permanently.

git commit -m "Add login page"

This command:

  • Creates a snapshot of staged changes

  • It includes a message explaining the change


5. git commit -am "commit msg"

Stages and commits tracked files only.

git commit -am "Fix navbar bug"

This command:

  • Skips git add

  • Commits only for already tracked files(modified)


6. git log

Shows commit history.

git log

It displays:

  • Commit hash

  • Author

  • Date and time

  • Commit message


7. git log --oneline

Shows commit history in short form.

git log --oneline

This command:

  • Shows one commit per line

  • Is easier to read

  • Is useful for finding commit hashes


8. git diff

Shows changes between versions.

git diff

This command:

  • Shows unstaged changes

  • Helps you review code before committing

Compare two commits:

git diff <initial_commit_hash> <latest_commit_hash>

This shows:

  • Exact differences between two commits

9. git revert <commit_hash>

Undo a commit.

git revert a1b2c3d

This command:

  • Creates a new commit that includes the reversed changes

  • Does NOT delete history


10. git reset --hard <commit_hash>

Moves project back to an older commit.

git reset --hard a1b2c3d

This command:

  • Deletes commits after the given hash

  • Is dangerous if used carelessly