Git command to commit all changes including files removed or created
Categories:
Mastering Git: Committing All Changes, Including Added and Removed Files

Learn how to efficiently commit all modifications in your Git repository, including newly added files, deleted files, and changes to existing ones, using simple and effective commands.
When working with Git, it's common to make various types of changes to your project: modifying existing files, creating new ones, and deleting others. While git add <file>
is great for individual files, and git add .
stages all new and modified files, neither of these commands inherently handles deleted files in the same way. This article will guide you through the most effective Git commands to commit all types of changes in one go, ensuring your repository accurately reflects your current working directory.
Understanding Git's Staging Area
Before diving into the commands, it's crucial to understand Git's staging area (also known as the index). Git doesn't automatically track every change in your working directory. Instead, you explicitly tell Git which changes you want to include in the next commit by 'staging' them. This gives you fine-grained control over what goes into each commit. New files, modified files, and deleted files all need to be staged before they can be committed.
flowchart TD A[Working Directory] --> B{Changes Made} B --> C{Modified Files} B --> D{New Files} B --> E{Deleted Files} C --> F[git add <file> or git add .] D --> F E --> G[git add -u or git add -A] F --> H[Staging Area] G --> H H --> I[git commit -m "Message"] I --> J[Git Repository]
Git's staging process for different types of changes
Committing All Changes: The git add -A
Command
The most straightforward and recommended way to stage all changes—including modifications, additions, and deletions—is by using git add -A
or git add --all
. This command tells Git to look at your entire working tree and stage everything that has changed since the last commit. It's a powerful command that simplifies the staging process significantly, especially when you have a mix of changes.
git add -A
git commit -m "Commit all changes: new features, bug fixes, and removed old files"
Staging and committing all changes in one go
git add -A
is convenient, always review your changes with git status
before committing to ensure you're not including unintended files or changes. This helps maintain a clean and understandable commit history.Alternative: git add .
and git add -u
Combined
Before git add -A
became widely adopted or for specific scenarios, developers often combined git add .
and git add -u
. Let's break down what each does:
git add .
: This command stages new files and modifications to existing files in the current directory and its subdirectories. It does not stage deletions.git add -u
(orgit add --update
): This command stages modifications and deletions to tracked files. It does not stage new, untracked files.
When used together, they achieve the same result as git add -A
, but git add -A
is generally preferred for its simplicity and clarity.
# Stage new and modified files
git add .
# Stage modifications and deletions to tracked files
git add -u
# Now commit all staged changes
git commit -m "Combined staging of all changes"
Achieving full staging using git add .
and git add -u
git add .
can be slightly nuanced depending on your Git version and configuration. For maximum clarity and consistency across all change types, git add -A
is the most reliable choice.Practical Steps for Committing All Changes
Here's a step-by-step guide to ensure all your changes are committed correctly:
1. Review your changes
Before staging anything, use git status
to see an overview of all modified, new, and deleted files in your working directory. This helps you confirm what you're about to commit.
2. Stage all changes
Execute git add -A
from the root of your repository (or the directory containing the changes you want to stage). This command will stage all modifications, additions, and deletions.
3. Verify staged changes
Run git status
again. You should now see all your intended changes listed under 'Changes to be committed'.
4. Commit the changes
Finally, commit your staged changes with a descriptive message using git commit -m "Your commit message here"
. A good commit message explains what was changed and why.