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: 
use the git worktree.

***`git worktree`***
====================

Git worktree was introduced in 2007 under the `contrib` folder in the git repo and was called `new-workdir`. 

In **git V2.5** it was named `worktree` and it allows you to have multiple instances of the same repository across different folders.

for example:

```
git worktree add <second path>

```

will create another folder on your computer which allows you to work on different branch simultaneously.

---

If you want to remove the worktree, delete the folder and then execute `git worktree prune` which will remove the worktree reference.

> 
> ***`prune`***  
> 
>  Prune working tree information in `$GIT_DIR/worktrees`.
> 
> 
> 

### Creating new worktree

```
# create new branch inside the worktree folder 
git worktree -b <branch name> <path>

```

### Removing worktree

```
# do your code and once you have done 
# commit, push and now you can delete your folder
rm -rf <path>

# Tell git to remove the workdir copy
git worktree prune

```

**Update**
In the coming versions (git 2.17+) a `git worktree delete` will be exposed as a new command for deleting worktrees.

### Listing worktree

[![enter image description here](https://i.stack.imgur.com/PCngz.png)](https://i.stack.imgur.com/PCngz.png)

---

If you use rebase later on:

* Note: ([Since Git 2.7](https://github.com/git/git/blob/master/Documentation/RelNotes/2.7.0.txt))  

you can also use the `git rebase [--no]-autostash` as well.
> 
> 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.