Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7843565
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T16:34:55+00:00 2026-06-02T16:34:55+00:00

I would like to understand what Git actually is storing when moving files into

  • 0

I would like to understand what Git actually is storing when moving files into the “staging” state.

Consider the following sequence:

A new file is added and committed to the local repository:

touch file.txt
git add file.txt
git commit

I make changes to the file:

echo text1 > file.txt
git add file.txt

I then edit the file again, before committing it:

echo text2 > file.txt

A git status shows:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   file.txt
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   file.txt
#

I then commit the file:

git commit file.txt

How is git able to handle staging the new, second update to file.txt without being told to? The “status” output looks as if it would try to check the first revision in, but withhold the unstaged changes without checking them in.

Is there an implicit stage that is done in this case?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-02T16:34:56+00:00Added an answer on June 2, 2026 at 4:34 pm

    Think of Git as two things – commits (snapshots of files) and labels (branches, among other things).

    Git actually creates a commit when you git add, not when you git commit. So when you executed git add on the changed file, it created a commit with those changes, and assigned the “staging” label to that particular commit.

    When you changed the file again before executing git commit, it now has the “staged commit” (that hasn’t had git commit executed on it yet), and the new changes to the file that has been neither added nor committed. That’s how git status is able to show you both.

    When you git commit, it is actually moving your current branch label to that particular commit (and removing the “staging” label), so the commit is no longer marked as “staging” but “master” (or whatever branch you’re currently on).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

We are checking out git and would like to understand which workflow might suit
I would like to understand the following type of syntax. Example: public interface A
I would like to understand that what is Mesh Object and its conection with
I would like to understand what class << self stands for in the next
I would like to understand how object deletion works on python. Here is a
I am developing a Rails application and would like to understand when to use
I would like to better understand the basic steps needed to a take an
I would like to know about the Invoke(delegate) method. I do not understand why
I would like to write a vulnerable program, to better understand Stack Overflow (causes)
I would like to upload a picture to Facebook event. I don't understand the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.