Да, в Git не нужен отдельный сервер в обязательном смысле. Вышестоящий репозиторий (origin) может находиться где угодно — хоть на этом же компьютере, хоть в расшаренной по локальной сети папке.
Для командной работы обычно создают bare-репозиторий (без рабочего каталога). Пример:
# на общей машине создаём bare-репозиторий
mkdir D:\Git\project.git
cd D:\Git\project.git
git init --bare
# у разработчиков (если эта папка расшарена на сервере)
git clone \\server\Git\project.git
Такой вариант безопасен: никто не ломает чужой рабочий каталог, а push/pull работают штатно.
Тем не менее, Git допускает и другие схемы. Можно обойтись даже без центрального репозитория, настроив прямые связи между коллегами и обмен коммитами (git fetch из соседнего репозитория, git push в неактивную ветку другого репозитория). Git по умолчанию запрещает push в текущую ветку не-bare репозитория (receive.denyCurrentBranch=refuse), чтобы не портить рабочий каталог.
# если у коллеги репозиторий в папке D:\Work\project
# и он расшарил её как \\colleague\Work\project
git remote add colleague \\colleague\Work\project
git fetch colleague
Я сам когда-то использовал это для синхронизации между рабочим компом, где шла разработка и тестирование, и сервером, где крутился готовый продукт. На сервере был обычный репозиторий, я заходил по RDP и подкачивал протестированные обновления со своего компа — изменения сразу становились рабочими без дополнительной сборки. Для одиночных или админских задач такой приём работает, но для команды гораздо надёжнее bare-репозиторий.