Do you mean
For the first, good IDEs should have that functionality (e.g. IntelliJ) with some visual help.
For the second, that's not really the it's supposed to be used. You might want to ask yourself what you're using the branches for if you don't want to merge the full one. Usually it's one coherent feature, so merging everything is the only thing that makes sense (well, except for merging nothing).
Interesting concept, but merging individual files seems like a moot point. When you branch off you usually branch off with the intention to add or edit specific files, while someone else works on another section that targets different files.
If you are thinking of adding in extra functionality on one branch that directly interfaces with scripts stored on the branch someone else is working on you would usually branch off and implement those scripts after the original branches have been merged.
It is an interesting point, however, I feel like doing this would ultimately result in merge conflicts
Dwight Badua
Backend Developer
There's a trick to do this...