git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: A Basic Git Question About File Tracking

From
Jakub Narebski <jnareb@gmail.com>
Date
Oct 9, 2011, 01:17 UTC
Message-ID
<m3ipnz0xri.fsf@localhost.localdomain>
In-Reply-To
<4E90E60C.7060105@gmail.com>
Jon Forrest <nobozo@gmail.com> writes:
Show 24 quoted lines
> On 10/3/2011 6:22 PM, Jonathan Nieder wrote:
> 
> [I'm just getting back to this question. I had accidentally
> sent this follow up directly to Jonathan but I want to
> continue this on the email list.]
> 
> > Yes, "x" is tracked.  Moreover, "x" is in the index.  You can
> > list files in the index with the "git ls-files -s" command.
> 
> This spoils my understanding of what the index
> is. I had been thinking that after you add files
> to the index, and then commit, the index is then
> empty. In other words, whatever's in the index
> gets committed, and then the index is cleaned.
> 
> On the other hand, if the definition of a tracked
> file is a file that's in the index, then this definitely
> clears up my understanding of tracked files.
> 
> If every file that's 'git add'ed stays in the
> index, how does git know which files to commit?
> 
> I can't prove it but I suspect that many git beginners
> also are confused by this.

You seem to be under [false] impression that git commit is about _changes_ / _changeset_.

It is not true. What is stored in git commit object is (pointer to) _snapshot_ of a state of a project at given time. This means that "git commit" creates a tree object out of state of the index, and creates commit object that points to said newly created tree, and has version you started work from as its parent. It is commit remember the previous version that allows to turn commit into changeset.

Hopefully that would clear up your confusion.
-- 
Jakub Narębski
Previous: Jon ForrestNext: Jon Forrest
Message 6 of 9 in “A Basic Git Question About File Tracking”
  1. Jon ForrestOct 4, 2011
  2. Jonathan NiederOct 4, 2011
  3. Jon ForrestOct 4, 2011
  4. Jonathan NiederOct 4, 2011
  5. Jon ForrestOct 9, 2011
  6. Jakub NarebskiOct 9, 2011
  7. Jon ForrestOct 9, 2011
  8. Jakub NarebskiOct 9, 2011
  9. Scott ChaconOct 9, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.