• 0 Posts
  • 4 Comments
Joined 2 months ago
cake
Cake day: March 13th, 2026

help-circle

  • Why are you copying a file?

    I’m splitting a several thousand LOC file, which I don’t have previous history in.

    Like, maybe I’m just too familiar with git to see the forest for the trees, but what the heck are you doing over there?

    Normally copying a file and committing transfers the authorship to you, because the copy just appears from nothing as a brand new file, never known to git. This would prevent browsing the per-line “who changed this last” history past the copy and obfuscate who wrote what and when.

    (why the downvote?)



  • Replicating git history for a file takes 1 merge commit and 3 commits, and this is propably one of the most complex workflows I have encountered:

    (might not be correct...)
    git checkout -b work
    git mv file file.tmp
    git commit
    git checkout -b copy HEAD^
    git mv file file2
    git commit
    git checkout work # can be skipped if you merge "work" instead.
    git merge copy # "work" and "copy" must conflict, stage file.tmp and file2 and commit the result.
    git mv file.tmp file
    git commit
    <git blame is identical for file and file2>
    

    I would love to squash this into a single commit, but git doesn’t have a copy operation or detection. :(