States of a File in Git Working Directory Last Updated : 07 Jun, 2024 Comments Improve Suggest changes 4 Likes Like Report Git is a powerful version control system that helps developers track changes in their code over time. Understanding the different states a file can be in within the Git working directory is important for effectively managing and organizing your project. This article will explore the various states of a file in Git, explaining what each state means and how it impacts your workflow. The Git WorkflowBefore diving into the states of a file, it's important to understand the basic Git workflow, which consists of three main areas: Working Directory: The current state of your project files.Staging Area (Index): A place where you can group changes before committing them.Repository (HEAD): The history of your project, including all committed changes.States of Gile in Git Working Directory1. Untracked stateUntracked files are any files in the working directory that were not in the last snapshot and are not in the staging area. Whenever a new file is added in the working directory which doesn't exist before, it is considered as an untracked file. This is because Git sees this as a file that didn’t have in the previous snapshot(commit). Let's see this with an example, suppose we add new file example.html in our repository and run git status command to see the status of the file. It shows a list of untracked files which include example.html file. Untracked State in Git2. Tracked state Tracked files are files that were in the last snapshot. These are files that Git knows about. Each track file can be in one of three sub-states, modified, staged, or committed. 3. Modified State A file in the modified state means that changes have been made to it that haven't committed yet. The changes could be adding, modifying, or deleting the contents of the file. These files will be included in the next commit but will be included in their respective new form. Let's modify our tracked example.html file and run the git status command. Modified States in Git4. Staging State A file in the staging state means either it is not present in the last commit (e.g. newly created files) or it is “modified” file that user tells git to include in the next commit. Files are added to the staging state using git add command. Two types of files can be added to a staging state: untracked or modified. Let's stage our untracked example.html file and run the git status command. Staging State Now, let's stage our modified tracked example.html file and run the git status command. Modified Tracked file5. Committed State A file in the committed state means that the changes made to it are safely stored in a snapshot in the Git directory. A file is committed using git commit command.This command creates a new snapshot in the Git directory and shows us some stats for the change made. Let's commit the changes we made in our example.html file. Git Commit Create Quiz Comment R rimjhim_25 Follow 4 Improve R rimjhim_25 Follow 4 Improve Article Tags : Web Technologies Git Explore Git IntroductionGit Introduction 5 min read Introduction to Github 5 min read An Ultimate Guide to Git and Github 11 min read What is Git? 6 min read What Is Gitlab? Complete Guide 4 min read Git Bash 9 min read Git Installation and SetupHow to Install GIT on Linux 4 min read Git - Environment Setup 2 min read How To Install Git on Ubuntu 20.04 3 min read How to Install Git in VS Code? 2 min read How to Install Git on Cygwin? 2 min read How to Install and Use GIT in Android Studio? 4 min read How to Setup Git Using Git Config? 3 min read Git- Setting up a Repository 3 min read How to install Git on Redhat Linux 9? 4 min read How to Install Git on Termux? 2 min read How to Install Git in FreeNAS? 4 min read How to Install Git on Raspberry Pi? 2 min read How to Install GIT on VMWare? 2 min read How to Install Git in Cpanel Server? 3 min read How To Install Git on AWS? 2 min read How to Setup Git Server on Ubuntu? 6 min read How to Install Git on Windows Subsystem for Linux? 2 min read All Git CommandsBasic Git Commands with Examples 4 min read 50+ Essential Git Commands for Beginners and Developers 7 min read Top 12 Git Commands for Every Developer 9 min read Essential Git Commands 3 min read Useful Git Commands and Basic Concepts 5 min read All Git Commands You Should Know 8 min read Simple and Concise Git Commands That Every Software Developer Should know 4 min read Most Used Git CommandsGit Init 3 min read Git Pull 4 min read Git Push 4 min read Git Clone 5 min read Git Rebase 8 min read How To Fetch Remote Branches in Git ? 3 min read Git Status 2 min read Git Add 2 min read Git Commit 2 min read Git Reset 3 min read Git BranchBranching Strategies in Git 8 min read Introduction to Git Branch 4 min read How To Create Branch In Git? 2 min read How to Create a Branch In Git from Another Branch? 3 min read How to Create a New Branch in Git and Push the Code? 8 min read How To Publish A New Branch In Git? 4 min read How to Create Git Branch With Current Changes? 1 min read Create a Git Branch From Another Branch 4 min read How to Create a New Branch in Git? 4 min read How to Create Branch From a Previous Commit Using Git? 2 min read How To Visualizing Branch Topology in Git? 3 min read How to Check Branch in Git? 2 min read How to Clone a Branch in Git? 3 min read How to Fetch All Git Branches? 2 min read Git MergeGit - Merge 4 min read Git Checkout And Merge 5 min read How to Merge Two Branches in Git? 4 min read How to Merge a Git Branch into Master? 3 min read How to Replace Master Branch with Another Branch in GIT? 2 min read Git Merge and Merge Conflict 3 min read Git Tools and IntegrationWorking on Git for GUI 4 min read How Git Version Control Works? 11 min read How To Write CI/CD Pipeline Using GitLab? 8 min read Git and DevOps: Integrating Version Control with CI/CD Pipelines 11 min read How To Create A Basic CI Workflow Using GitHub Actions? 5 min read How To Set Up Continuous Integration With Git and Jenkins? 4 min read How to Set Up a CI Pipeline for Ktor Using GitHub Actions? 6 min read Introduction to GitHub Actions 4 min read Basic CI Workflow For Android using GitHub Actions 2 min read Integrating Jenkins With Popular GitHub 8 min read Managing Git Repositories with GitLab 3 min read Git Remote RepositoriesUnderstanding Git Repository 4 min read Git- Setting up a Repository 3 min read Creating Repository in GitHub 3 min read Working With Git Repositories 7 min read Collaborating with GitGit - Fork 4 min read Difference Between fork and clone in GitHub 3 min read How to Fork a GitHub Repository? 3 min read Sync Your Fork With Master in GitHub 3 min read How to Update or Sync a Forked Repository on GitHub? 2 min read Advanced Git CommandsGit Rebase 8 min read Git - Difference Between Merging and Rebasing 3 min read What is Git Interactive Rebasing? 4 min read How to Undo a Git Rebase? 3 min read How To Rebase a Local Branch Onto a Remote Master in Git? 3 min read How to Fix - Git Refusing to Merge Unrelated Histories on Rebase? 3 min read Using Refs And Reflogs In Git 3 min read Recovering Lost Commits in Git 2 min read How to Restore a Deleted Branch or Commit with Git? 3 min read How to Change a Git Commit Message After a Push? 3 min read Git - Cherry Pick 6 min read How to cherry-pick Multiple Commits in Git? 4 min read How to Use the "cherry-pick" Command in Git? 3 min read Like