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: 
From what I understood from the comments section: is that you want to have 2 different "versions" of the same file. (As you mentioned on the comments, having file.txt have "AAAAAAA" line on one, and "BBBBBBB" on one, but not "AAAA").

This CAN be achieved by branching very easily. 

Before starting your work, you will be "standing" on one branch (probably `master`). You can at this point create a new branch `git checkout -b feature1` (This command creates and switches you to branch feature1). where you will make some changes to file.txt. Say you will write "AAAAAA". Then, you will have to commit it. `git commit -a -m "Added the AAAA line"`. 
If you now `git checkout master` (you go back to master). Your file WON'T have "AAAAA" written on it, you can then do other changes to this file (either on this branch, or another branch). You can write "BBBBBBB" to this file, and you will have 2 "versions" of the same file "file.txt", one will have "AAAA" (the one on branch feature1) and the other on master will have BBBB. 

Note: I created a scenario where you haven't already changed the file originally, but if you have, there are also ways of achieving this by branching. You should **def** read <https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging>
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).