From: Jonathan Nieder Date: Sat, 13 Nov 2010 20:21:46 GMT Subject: Re: Using a different index and HEAD Message-ID: <20101113202146.GA16920@burratino> In-Reply-To: <20101113194128.GA8878@nibiru.local> Enrico Weigelt wrote: > I didnt have time for a deeper look yet, but I'll try to explain > my ideas a bit more: > > Suppose I choose to work on an branch "one" (which probably is > synced to some remote). That will create some temporary (local) > WIP branch, where [...] > Now I click some "commit" button and it asks me what > exactly to commit - I now can interactively selected changes to > be committed (maybe even on single changelets within a file), > they'll be squashed together (maybe involving some rebase magic) > and an commit final commit object is created on the "one" branch. Ah, that is completely different. :) Your tools would be GIT_INDEX_FILE=$GIT_DIR/wip-index; export GIT_INDEX_FILE git update-index ... git write-tree git commit-tree ... git update-ref ... git read-tree ... none of which touch HEAD except the second to last one. See the list of "low-level commands (plumbing)" and examples in contrib/examples for more details.