Understanding the Essentials: Git commands

Understanding the Essentials: Git commands


Git, a version control system widely used in software development, offers a robust set of commands to manage and track the progress of your code. This post will guide you through the most common Git commands, providing a foundation for effective version control management.

What is Git?

Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It allows multiple developers to work together and tracks changes in any set of files.

Basic Git Commands

1. git init

  • Usage: Initializes a new Git repository.
  • Command: git init
  • Explanation: This command creates a new .git directory in your project stores all of your repository’s configurations and tracking information.

2. git clone

  • Usage: Creates a copy of an existing Git repository.
  • Command: git clone [URL]
  • Explanation: This command clones a repository from an existing URL, like GitHub, onto your local machine.

3. git add

  • Usage: Adds changes to the staging area.
  • Command: git add [file] or git add .
  • Explanation: This command adds one or more files to the staging area. git add . adds all changes in the project to the staging area.

4. git commit

  • Usage: Records the changes made to the files.
  • Command: git commit -m "[commit message]"
  • Explanation: This command saves your changes to the local repository. Each commit has an associated commit message describing why a particular change was made.

5. git status

  • Usage: Shows the status of changes as untracked, modified, or staged.
  • Command: git status
  • Explanation: This command displays the state of the working directory and the staging area. It lets you see which changes have been staged, which haven’t, and which files aren’t being tracked by Git.

6. git push

  • Usage: Sends local commits to the remote repository.
  • Command: git push [remote] [branch]
  • Explanation: This command uploads local repository content to a remote repository. Pushing is transferring commits from your local repository to a remote repo.

7. git pull

  • Usage: Fetches and merges changes on the remote server to your working directory.
  • Command: git pull [remote]
  • Explanation: This command is used to fetch and download content from a remote repository and immediately update the local repository to match that content.

8. git branch

  • Usage: Lists, creates, or deletes branches.
  • Command: git branch or git branch [branch name]
  • Explanation: This command is used to manage branches. git branch lists all the local branches in your repo. git branch [branch name] creates a new branch.

9. git checkout

  • Usage: Switches between branches.
  • Command: git checkout [branch name]
  • Explanation: This command is used to switch from one branch to another.

10. git merge

  • Usage: Merges one branch into another.
  • Command: git merge [branch name]
  • Explanation: This command is used to merge the changes from one branch into another. Usually, you would merge a feature branch into the main branch.

11. git diff

  • Usage: Shows the file differences which are not yet staged.
  • Command: git diff
  • Explanation: This command shows the file differences between the staging area and the latest version present.

12. git log

  • Usage: Shows the chronological commit history for a repository.
  • Command: git log
  • Explanation: This command displays the entire commit history of the project in reverse chronological order.


These commands represent the foundation of everyday Git usage. Understanding and mastering these will significantly aid your journey as a developer or collaborator in software development projects.


Hi, my name is Stephen Finchett. I have been a software engineer for over 30 years and worked on complex, business critical, multi-user systems for all of my career. For the last 15 years, I have been concentrating on web based solutions using the Microsoft Stack including ASP.Net, C#, TypeScript, SQL Server and running everything at scale within Kubernetes.