git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Resetting paths

From
Andreas Ericsson <ae@op5.se>
Date
Feb 10, 2006, 11:44 UTC
Message-ID
<43EC7CB0.5040804@op5.se>
In-Reply-To
<7vlkwjzv0w.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
Show 17 quoted lines
> 
> While I worked on parts of the system that deals with the cached
> lstat() information, I needed a way to debug that, so I hacked
> ls-files -t option to show entries marked as "always matches the
> index" with lowercase tag letters.  This was primarily debugging
> aid hack.
> 
> Then I committed the whole thing with "git commit -a" by
> mistake.  In order to rewind the HEAD to pre-commit state, I can
> say "git reset --soft HEAD^", but after doing that, now I want
> to unupdate the index so that ls-files.c matches the pre-commit
> HEAD.
> 
> 
> Have people found themselves in similar need like this?  This
> could take different forms.
> 
Sometimes, yes.
Show 17 quoted lines
>  * you did "git update-index" on a wrong path.  This is my
>    example and the above voodoo is a recipe for recovery.
> 
>  * you did "git add" on a wrong path and you want to remove it.
>    This is easier than the above:
> 
> 	git update-index --force-remove path
> 
>  * you did the above recovery from "git add" on a wrong path,
>    and you want to add it again.  The same voodoo would work in
>    this case as well.
> 
> 	git ls-tree HEAD path | git update-index --index-info
> 
> We could add "git reset path..." to reduce typing for the above,
> but I am wondering if it is worth it.
> 

How about "git update-index --undo path...", possibly with "git reset path..." as a shorthand. Support for temporary indexes already exist, so it should be a simple (and atomic) operation of copying it out with the paths mentioned skipped, and then overwriting the current index. I'm not sure how well it would perform on very large repositories, but having a snappish command to undo a blunder is usually welcome even if it takes half a minute or more to run.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Previous: Junio C HamanoNext: Junio C Hamano
Message 2 of 3 in “Resetting paths”
  1. Junio C HamanoFeb 10, 2006
  2. Andreas EricssonFeb 10, 2006
  3. Junio C HamanoFeb 11, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.