Ваша задача сводится к простой вещи - как правильно деплоить код на продакшен.
Делается это очень просто:
- Просто клонируем код на продакшен
- Ставим зависимости (и все остальное)
- Удаляем все, чего не должно быть на продакшене - gulpfile.js, package.json, bower.json, .bowerrc и конечно же директорию .git.
Дальше начинаются варианты:
- Не далять директорию .git, а создать для prod окружения отдельный ключ, который имеет доступ только к prod ветке репозитория. Для увеличения секурности - можно еще открывать репозиторий для продакшена только перед деплоем и закрывать после деплоя.
- Использовать Docker. Просто собираем контейнер где-то еще, удаляем из контейнера все лишнее и после деплоим сам контейнер в продакшен.
Вариант с Docker является самым популярным сейчас и имеет огромный плюс - вы собираете образ с Django кодом, этот образ передаете на тестирование и после тестирования этот же образ уходит в продакшен. Это позоляет избегать ошибок, не найденных из-за различия тестового и продакшен окружений. Однако есть много особенностей сборки Docker контейнеров - будет правильным в начале изучить Best Practice, чтобы понять, что можно применить в Вашем случае.
Чтобы не делать все руками, имеет смысл этот процесс автоматизировать - для вас есть огромное количество инструментов - CI сервера (тот же Jenkins или web аналоги) и средства автоматизации для деплоя - ansible, salt-stack, puppet, chef. Как показывает практика - ansible один из самых простых.