1. Git сервер на windows server 2012 (на нем будут все репозитории)
Я бы так не стал извращаться, но Вам виднее видимо, раз для git-сервера был выбран windows...
2. Подключение клиентов(разработчиков) к git серверу
Известные мне способы: через HTTP, GIT и SSH протоколы.
Где,
а) HTTP - авторизация настраивается на уровне HTTP-сервера и проксируется на Git. В виндовсе насколько я понимаю, это должен быть IIS по логике вещей (иначе зачем нам вообще Windows, для этих целей?), соответственно, авторизацию настраиваете на нём
б) GIT - не разу не использовал, т.к. изначально "родной" протокол Git, даже авторизацию не поддерживал (возможно сейчас что-то изменилось, но это мало вероятно).
в) SSH-протокол, в виду особых причин в windows встраивался довольно хреново, когда я занимался этим вопросом, но возможно что-то изменилось.
Подробности про протоколы.3. Автоматическое Создание бэкапа (например раз в неделю) репозитариев на др. сервер (Ubuntu)
Элементарно, создаёте скрипт, который будет запускаться из планировщика, например, раз в неделю, и он делает либо:
а) Пакует все папки репозиториев в архив(ы) и отправляет куда положено, любым доступным образом (FTP, SSH, HTTP, как-то ещё), но если есть вероятностью изменений в репозитории во время архивации, я бы воспользовался следующим вариантом, или отключал бы репозитории на время архивации
б) Делаете пуш, всё тем же скриптом в удалённые клоны репозиториев, настроенных по принципу описанному выше. Или раз в неделю "git pull" с удалённого репозитория. Всё это хорошо расписано
здесь.
4. Автоматическая заливка репозитариев на Bitbucket
Особо ничем не отличается от предыдущего пункта
Спасибо!
Не за что :D