gitgit-branchbranching-and-merging

How do I copy a version of a single file from one Git branch to another?


I've got two branches that are fully merged together.

However, after the merge is done, I realise that one file has been messed up by the merge (someone else did an auto-format, gah), and it would just be easier to change to the new version in the other branch, and then reinsert my one line change after bringing it over into my branch.

So what's the easiest way in Git to do this?


Solution

  • Run this from the branch where you want the file to end up:

    git checkout otherbranch myfile.txt
    

    General formulas:

    git checkout <commit_hash> <relative_path_to_file_or_dir>
    git checkout <remote_name>/<branch_name> <file_or_dir>
    

    Some notes (from comments):

    An alternative:

    git show commit_id:path/to/file > path/to/file