From: Andreas Ericsson Date: Fri, 05 Oct 2007 12:23:51 GMT Subject: Re: Question about "git commit -a" Message-ID: <47062CD7.70400@op5.se> In-Reply-To: <4d8e3fd30710050519k7a3db02dk5ba9750fd8e9705f@mail.gmail.com> Paolo Ciarrocchi wrote: > On 10/5/07, Andreas Ericsson wrote: > [...] >> As for the "git commit should default to -a" discussion, I think it's pretty >> clear where I stand ;-) > > Fair enough. > > Another try to have an easy explanation of how the staging area works: > > paolo@paolo-desktop:~/HowIndexWorks$ ls > A B C D E F G > > Now I edit A,B,C,D and E: > > $ echo A >> A > $ echo B >> B > $ echo C >> C > $ echo D >> D > $ echo E >> E > > I now realize want to only commit the changes I did to A,B,C,D. > First step is to place A,B,C and D into the staging area: > $ git add A B C D > > Now I can commit: > $ git commitpaolo@paolo-desktop:~/HowIndexWorks$ git commit > Created commit 16032dc: I modified A,B,C and D > 4 files changed, 4 insertions(+), 0 deletions(-) > > It's now time to work on F and G: > $ echo F >> F > $ echo G >> G > > Current status is: > paolo@paolo-desktop:~/HowIndexWorks$ git status > # On branch master > # Changed but not updated: > # (use "git add ..." to update what will be committed) > # > # modified: E > # modified: F > # modified: G > > Instead of adding E,F and G to the staging are and then commit them in > two steps I can using a single command: > $ git commit E F G (in this case it's equivalent to git commit -a) > He. It's like comparing a duracell battery to the sun, but yes, that's one of the operations where the index is involved. But after doing your git-add thing above, you could also have continued hacking on A B C D, and git would only have committed the state where you did "git add". When you stop to think about this, you'll realize that it's a really powerful thing, as it lets you keep on hacking even when you don't really know where you'll end up. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231