Thread (9 messages) flat view 9 messages, 4 authors, 2016-06-15

Re: A Basic Git Question About File Tracking

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:52:13

Jon Forrest [off-list ref] writes:
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.]
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help