Как сказали выше, вам понадобится система контроля версий.
Далее есть два пути:
- делать билд локально и пихать результаты в систему контроля версий
- делать билд на сервере
Первый вариант плох тем, что в репозитории будут валяться файлы, не относящиеся напрямую к процессу разработки, и при конфликтах больше мороки (когда вы оба одновременно что-то там наисправляли).
Второй вариант лучше, но там придется поплясать с настройкой хуков репозитория их их обработкой.
В общем случае процесс выглядит следующим образом:
- вы поменяли код и отправили в репозиторий
- репозиторий принял ваши обновления и выполнил POST-запрос с данными об изменениях на указанный вами url (возможность настройки выполнения таких запросов при изменениях есть и у bitbucket и у github)
- по этому url сидит скрипт, который вытягивает последние изменения из репозитория и запускает процесс сборки
Если вы таки решите хранить готовые файлы в репозитории, то из последнего пункта нужно исключить сборку, так как с репозитория будут вытягиваться уже готовые файлы.