So, I have faced this nasty problem quite often, and tried looking for any solutions online, but I am not sure if this is git\'s expected behavior or not.
The default behaviour of git pull is to perform a fetch and then a merge. A merge is an actual, new, commit; normally this is resolved automatically so you see no staged changes. However, in the case of a conflict, the commit cannot be performed automatically, hence the visible staged changes.