Перейдя в ветку dev, я делаю изменения в файле. Само собой в ветке master видно, что файл изменился и git status покажет, что есть изменения.
Пока изменения не закоммичены они не принадлежат никакой ветке, они только в рабочей копии. А гит при переключении веток сохраняет изменения сделанные в рабочей копии. (Это не всегда возможно, например, если в рабочей копии и в ветке на которую происходит переключение изменено одно и то же место, git не даст переключиться на эту ветку, с сообщением, что переключение затрёт изменения в рабочей копии). Поэтому переключаясь между ветками можно наблюдать разницу между содержимым ветки и содержимым рабочей копии. Как только изменения закоммичены, они принадлежат ветке, в которую они закоммичены и при переключении ветки на другую в рабочую копию будет скопировано содержимое файла из новой ветки.