Git, a distributed version control system, doesn’t necessarily have “three stages” by official definition, but in the context of handling files and changes, it does involve three primary “areas” or “states.” These are:

1.Working Directory (or Working Tree):

  • This is your local directory where you make changes to your files. It contains the files as they appear in the most recent commit, plus any changes you’ve made since that haven’t yet been committed.
  • When you edit a file in your working directory, Git recognizes that the file has changed, but it won’t be tracked until you tell Git to do so.

2.Staging Area (or Index):

  • After making changes in the working directory, you might want to save these changes. Before doing that, you need to “stage” these changes. The staging area is a place where Git tracks changes that are ready to be included in the next commit.
  • You use ‘git add <filename>‘ to add changes from your working directory to the staging area. This tells Git “I want to include these updates in the next commit.”

3.Repository (or Git directory):

  • The repository is where Git stores the history of your project. It contains all the commits – snapshots of your project’s history.
  • Once changes are staged, you can commit them to the repository using git commit. This takes a snapshot of the staging area and saves it in the repository with a commit message describing what was done.
  • This repository resides locally on your machine, but it can also be synchronized with remote repositories on platforms like GitHub, GitLab, or Bitbucket.

In essence, the common workflow often involves:

  1. Making changes in the Working Directory.
  2. Staging these changes to the Staging Area.
  3. Committing the staged changes to the Repository.


Understanding these three areas/states is foundational to using Git effectively, as it helps visualize the process of tracking and saving changes.

For More Information about GitHub, please visit official website.

Any queries pls contact us

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *