From: Tim Tassonis Date: Wed, 27 May 2026 03:27:14 GMT Subject: Re: git mv after the fact Message-ID: <983b4ba0-d2b0-4d29-aabe-9e7b3987d514@decentral.ch> In-Reply-To: Yeah, and while we're at at it: why not another patch for git rm file_i_deleted_but_didnt_tell_git_and_dont_want_an_error_message_because_thats_offensive because that's always very rude, too, telling me to have to use git rm -f Because I also am very sensitive and don't like to be told I fucked up and have to be more specific about what I actually want. That's just toxic, man. On 5/27/26 05:09, Junio C Hamano wrote: > Chris Torek writes: > >> On Tue, May 26, 2026 at 6:18 AM Frieder Hannenheim wrote: >>> I'd like to propose a new flag for git mv, that updates the index >>> like git mv normally would but does not move the file. ... >> >> You may already know this, but technically no flag is needed: >> you can just "git add" the new name and "git rm" the old one, >> with the same effect. > > Correct. > >> A flag for "git mv" would be convenient (and slightly more >> efficient, not in terms of storage but in terms of CPU time >> spent discovering that the contents under the new name >> already exist in the object database). > > May be convenient, but I do not get the "efficient" part. Do you > mean that for two operations "add" and "rm", you need to spend two > index writes plus one file contents hash, as opposed to one index > rite without having to do any contents hash? > >> But Git will discover >> the rename on its own in the usual way regardless of how >> you get to that point. > > This is not incorrect per-se, but it is a confusing thing to say to > somebody who does not know the equivalence of "mv" and "rm + add". > It would not be clear to them that you are not talking about what > happens during "mv" or "rm + add", but about what happend during > "git log -M", "git diff -M", etc. > > There is "git rm --cached" that can be used to recover from an > "oops, I removed the file from the filesystem without telling Git". > > $ date >new-file.txt > $ git add new-file.txt > $ rm new-file.txt > $ git rm --cached new-file.txt > > I think the requested "feature" is not all that outrageous. It > would be a similar value as a morning-after correction measure for > "oops, I moved the file in the filesystem without telling Git". > > $ date >old-file.txt > $ git add old-file.txt > $ mv old-file.txt new-file.txt > $ git mv --cached old-file.txt new-file.txt > > Thanks. > > -- decentral.ch - IT Stuff Tim Tassonis Badenerstrasse 219 8003 Zürich stuff@decentral.ch +41 79 229 36 17