Существует несколько способов, выбор зависит от того, в каком виде вы хотите получить дерево истории.
Способ №1: Переключиться на ветку dev, скопировать папку app куда-нибудь вне репозитория, переключиться на master, скопировать app обратно, выполнить commit с комментарием типа "актуализация master из dev". В дереве истории никакой связи между dev и master не появится.
Способ №2: Переключиться на ветку master, выполнить merge ветки dev с ключом --no-commit, вручную откатить изменение всех файлов вне папки app, выполнить commit. В дереве истории вы получите коммит слияния с нужным содержимым.
Способ №3: Интерактивный rebase из dev в master только тех коммитов, что меняли папку app. Не рекомендуется для новичков. И сама ветка dev заранее должна была вестись разработчиком с высокой культурой использования git.