пуш из голого репозитория git - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь использовать чистое 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>

Но похоже, что был бы лучший способ.

Но я думаю, что это должен быть отдельный вопрос.

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете клонировать исходное репо как голое, используя: git clone --bare <repo url>

...