Задать вопрос
@hippocrates_ho_koios
врач-кибернетик

1С EDT: можно ли в качестве удаленного репозитория использовать расшаренную по локальной сети папку?

Внедряем 1С EDT + Git. Весь код хотим хранить на своем сервере. Обязательно ли поднимать на Apache сервер Git или можно использовать расшаренную по локальной сети папку в качестве удаленного репозитория?
  • Вопрос задан
  • 148 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Да, в 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-репозиторий.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
1. Не надо использовать расшаренную папку в качестве репозитория
2. Не обязательно использовать apache для работы с git.
3. У git в принципе нет понятия "сервер", так как это распределённая система контроля версий.
В качестве origin может выступать любой сервер на linux, к которому можно подключиться по ssh.
Но самостоятельно управлять таким "сервером" будет не удобно, так как нужно будет руками создавать репозитории в нём и руками же добавлять публичные ключи.

Попробуйте Forgejo - это форк gitea, он жрёт очень мало ресурсов, его легко развернуть по инструкции, при этом там есть в принципе всё необходимое (пользователи, организации, возможность создавать репозитории, искать по ним, MR-ы, Issues, даже есть подобие Github Actions)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Сбер Санкт-Петербург
До 100 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽