1) Репозиторий - это одно хранилище файлов, которое находится где-то и вы, и ваш напарник заливаете туда коммиты, они же правки.
2) У каждого проекта свой репозиторий. Файлы сливаются в 1 автоматически. Если git не сможет этого сделать - он спросит, как именно слить файлы. Но обычно файлы сливаются самостоятельно очень легко.
3) Оба разработчика должны работать и тестировать фишки локально или на своём сервере. У вас не должно быть общего сервера, а то вы так и будете перетирать друг друга. По завершению правок - доработка заливается в общий репозиторий и уже он деплоится (автоматически или руками) на боевой сервер, минуя ваше звено с test.site.ru. Если нужно, чтобы кто-то тестировал, например, заказчик проверял правки перед выкадкой на основной сайт - создаёте отдельную ветку, в которой ведёте разработку. Эта ветка будет выкатываться на test.site.ru, потом она будет вливаться в master-branch и выливаться на основной сайт.
4) Вторая схема верная
Материалы по теме:
https://git-scm.com/book/ru/v1/%D0%92%D0%B5%D1%82%...
ruwhynot.com/2016/03/08/briefly-about-gitflow