Question: Is there a way to work on the same file but on different features/branches in GIT?

I'm sure there is a way but what is the easiest?  

I don't want to stash my changes as that's cumbersome. 

With SVN I was able to work on 2 separate branches as 2 different entities without any intervention and easy to switch between the two.

Answer: 
> 
> I don't want to stash my changes as thats cumbersome.
> 
> 
> 

The best way you could go about this is simply editing the file on both branches. 

The idea would be to have the common base on your master branch, and add a feature per branch, given your use case.
I think, that your workflow might be affected by how slow branch switching is in SVN. In Git, you don't need to worry about this - checkout of new branch will take fraction of second (maybe few seconds for very large projects).

The most sensible thing for you would be to work on single branch and once you will do some commits, `cherry-pick` them to other branch. Example: (let's assume that you want to work on file f.txt, which is identical on both branches)

```
$ git fetch
$ git checkout branch-1 # assuming remote branches exists already
$ vim f.txt # do some editing
$ git commit -am "f file changed"
$ git checkout branch-2
$ git cherry-pick branch-1 # <- this will pick single last commit from branch-1
                           # and apply it to branch-2

```

You are not limited to picking last commit, of course - you can pick by commit id, tag, you can use `~` operator to select commit ancestor, etc.
You can even do many cherry-picks at once by rebasing or, even nicer, interactive rebasing.

After your work is done, you need to do two separate pushes per branch (or you can change your `push.default` config option to `matching` to do one push from all local branches).