I have 2 git branches branch1 and branch2 and I want to merge file.py in branch2 into file.py in branch1 and only that file.
In essence I just want to work on the file.py in branch1 but want to take advantage of the merge command. What is the best way to do this?
The accepted answer already mentions using
git checkout. Now, there could be content in
branch2 that no longer is applicable in
branch1. Such a situation will require picking some changes and leaving others. Therefore, to have full control do an interactive merge using the
$ git checkout --patch branch2 file.py
The interactive mode section in the man page for
git-add(1) explains the keys that are to be used:
y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk nor any of the remaining ones a - stage this hunk and all later hunks in the file d - do not stage this hunk nor any of the later hunks in the file g - select a hunk to go to / - search for a hunk matching the given regex j - leave this hunk undecided, see next undecided hunk J - leave this hunk undecided, see next hunk k - leave this hunk undecided, see previous undecided hunk K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help
The split command is particularly useful.