From: Junio C Hamano Date: Tue, 16 Aug 2011 21:56:41 GMT Subject: Re: [PATCH] update-index: add --swap to swap index and worktree content Message-ID: <7vbovpggva.fsf@alter.siamese.dyndns.org> In-Reply-To: <20110816210108.GA13710@sigill.intra.peff.net> Jeff King writes: > # add some content with an error > echo 'printf("hello word!\n")' >hello.c > git add hello.c > > # work on it more, realizing the error > echo 'printf("goodbye world!\n") >hello.c > > # now what? you want to stage the s/word/world/ fixup, > # but you want to keep the hello/goodbye thing as a separate change. > # Using anything line-based is going to conflate the two. > # The change is simple, though, so you can just as easily edit the > # index file, if only you could get to it. So you do: > git update-index --swap hello.c > sed -i s/word/world/ hello.c > git update-index --swap hello.c > > So the swap really functions as a toggle of "I would like to work on > the index version for a minute", and then you toggle back when you're > done. And you have to redo what you did to the index version in the working tree after the second "swap", no?