Re: Feature request: git cp
- From
Lucas Seiki Oshiro <lucasseikioshiro@gmail.com>
- Date
- Nov 20, 2025, 23:07 UTC
- Message-ID
- <6F4B3935-7F2F-43C9-8E5E-12E2FB3331BD@gmail.com>
- In-Reply-To
- <CAL4-wQrgD3nnW2BfNf6e9d7tDANE60dYBRRP_0FW3Z-LvQrZmg@mail.gmail.com>
Hi, Martin!
> and would like the history to track the relevant lines in each file, > like "git mv" does,
As a consequence of Git being based on snapshots instead of deltas (see [1]), `git mv` actually doesn't keep track of renames. You can think of `git mv` as `git rm`ing the file with the old name + `git add`ing the same file with the the new name.
As Kristoffer said, the renames are detected by tools like `git log`, `git diff` or `git status` based on similarity between files, which are considered a rename if they are similar enough. That similarity can even be tuned by using the flag --find-renames, available in those three commands.
[1] https://git-scm.com/book/en/v2/Getting-Started-What-is-Git%3F