In my git history there is a 1k line file, call it main1.cpp. In a massive violation of DRY it was forked (copied to another name and added to version control) into a main2.cpp, about 30% of which has since diverged from main1.cpp.
Many changes to main1.cpp have been made concurrently by another developer. Is there a way to use git's merge facilities to merge the changes, or would it be better to manually fire up a three-way merge tool and do a 3-way merge, ignoring the two histories that diverged the files?