Действительно, если вы будете действовать таким образом, когда вы объедините эти две ветви (master & feature), фиксация, в которой вы удалили ваши файлы, будет применена к функции, тем самым удалив файлы, которые вы пытались сохранить вfeature.
Кроме того, если вы измените эти файлы в компоненте после удаления его в master, во время слияния файлы будут удалены, а затем изменены, что приведет к конфликту:
CONFLICT(изменить / удалить): test.txt удален в HEAD и изменен в функции.Функция версии test.txt оставлена в дереве.Автоматическое объединение не выполнено;исправьте конфликты, а затем зафиксируйте результат.
Если файлы не были изменены (без конфликтов), вы можете решить эту проблему после слияния, отменив удаление удаления:
$ git merge feature # in master
$ git revert SHA-of-the-commit-deleting-your-file
Вы получите все коммиты ветки Feature и Master без потери файлов.
Однако, если возникает конфликт, вам, возможно, придется решить это вручную (если кто-то не найдет для этого идеальную команду git!):
$ git merge feature # in master
$ git mergetool # use modified versions of files
$ git commit -m "Merge with deleted files solved"