On Fri, Jun 17, 2016 at 10:47 AM, Ben Coman <[email protected]> wrote:
> On Fri, Jun 17, 2016 at 6:46 AM, Damien Pollet <[email protected]> 
> wrote:
>>
>> On 17 June 2016 at 00:08, Eliot Miranda <[email protected]> wrote:
>>>
>>> What I don't understand is how, or indeed why, one stages modified files.
>>> I get that adding files requires informing git.  But why doesn't "git
>>> commit" commit modified files by default?  Why do I have to use git commit
>>> -a to include modified files?
>>
>>
>> The mindset with git is that your working copy is a sort of experimentation
>> area where you can have a crazy scientist attitude. When you commit,
>> however, you switch hats and become the thorough developer that cares about
>> your future self, and therefore has done all changes in a perfect didactic
>> sequence so that you can understand what the hell your future-past-self was
>> doing.
>>
>> If your crazy-scientist-self is already auto-censored into producing limpid
>> incremental patches, then he can use git aliases for his preferred workflow
>> (for instance I have git ci, git co, git st configured to mimic their svn
>> counterparts; git staged shows a diff of what's to be committed next, etc)
>
> While creating svn like aliases and using "commit -a" may initially
> aid transition to git from svn, consider that this is a bit like a C
> programmer migrating to C++ to earn OO, versus learning OO by using
> Smalltalk.  The hybrid nature of the C++ impedes them changing their
> *mindset* to use OO the full power of OO.  In some respects it is
> better to make the effort up front to change mindset, but of course
> that needs to balanced against productivity today.
>
> cheers -ben
>
> P.S. Just to complete my other reply...
>> Personally I like the staging area as a final check to observe what I'm 
>> *really* committing,
>
> Instead of "commit -a" which atomically does... git add -u ; git commit
> I like to separately use something like...
>     git add -u ; git diff --staged ; git commit

but actually there is a subtle difference if you are in a subdirectory
when you issue the commands...
   http://stackoverflow.com/questions/3541647/git-add-vs-git-commit-a

Reply via email to