Я пытаюсь использовать чистое git-репо в качестве моста между моим рабочим репо и источником
origin ----- bare repo ----- working repo
Я могу зайти в рабочее репо, толкнуть и вытащить из голого репо. Но мне также нужно пойти в голый репо и толкнуть и вытянуть из источника, это возможно?
EDIT
То, что я пробовал до сих пор ...
Для создания голого репо
mkdir bare_repo
cd bare_repo
git init --bare
git remote add origin path_to_origin
git fetch origin
Для создания рабочего репо
git clone path_to_bare
Я получаю предупреждение: «Удаленный заголовок относится к несуществующему ref, невозможно оформить заказ», но он по-прежнему создает рабочий репо
git pull origin master
Я получаю сообщение об ошибке: «Не удалось найти удаленный мастер ссылок»
UPDATE
Оказывается, у меня была проблема с правами на запись, и поэтому я не мог перейти от рабочего репо к голому репо. В общем, прежде чем задавать вопросы, мне нужно проверить разрешения для всех моих репозиториев ... Теперь все работает ...
Во-первых, если кто-то выдвинет коммит к источнику, мне нужно будет извлечь этот коммит из моего голого репо и обновить ветку в моем голом репо. Выборка достаточно проста
# in bare repo
git fetch origin master
но я не знаю лучший способ обновить ветку. Я не могу вытащить, потому что нет рабочего каталога. Я могу получить хэш нового коммита, используя
git ls-remote
и затем вручную наведите ветку на него с помощью
git branch -f master <hash>
Но похоже, что был бы лучший способ.
Но я думаю, что это должен быть отдельный вопрос.