Subject: Re: Feature request: git cp

From: Lucas Seiki Oshiro <[email-masked]>
Date: Thu, 20 Nov 2025 20:07:43 -0300

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