Нажатие на голое хранилище Git (удаленное) приводит к тому, что оно перестает быть пустым - PullRequest
0 голосов
/ 10 октября 2009

У меня есть локальный репозиторий TestRepo. Я клонирую его с помощью опции --bare, заархивирую этот клон и выброслю на свой сервер. Разархивируйте его, и оно все еще голое.

Затем я локально клонирую пустой удаленный репозиторий поверх ssh с чем-то вроде

git clone ssh://git@host.com/~/TestRepo.git TestRepoCloned

Локальный TestRepoCloned является не голым и имеет пульт, называемый "источник". Похоже, что он правильно отслеживает по внешнему виду его файла конфигурации

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = ssh://git@host.com/~/TestRepo.git
[branch "master"]
    remote = origin
    merge = refs/heads/master

Я редактирую существующий файл. Я фиксирую изменение в текущей ветви (master) через

git commit -a -m "Edited a file."

Фиксация успешна, и все хорошо.

Я решил отправить это изменение в удаленный репозиторий через SSH с

git push

Удаленный репозиторий больше не доступен, но содержит полный рабочий каталог, и я получаю постоянные сообщения об ошибках при всех дальнейших попытках отправки в него.

Все, что я прочитал, похоже, говорит о том, что я делаю правильно, но это просто не работает. Как я должен вносить изменения в голое удаленное репо и на самом деле держать его голым ?

Ответы [ 2 ]

4 голосов
/ 11 октября 2009

Этого не должно быть. Я полагаю, что существует какой-то хук-скрипт (вероятно, post-receive), который вызывает проверку или на наличие ошибки в Git И то и другое маловероятно, но это единственное, что я могу себе представить.

3 голосов
/ 11 октября 2009

Возможно, что zip / unzip не сохраняет права доступа к файлу (например, исполняемый бит) и, таким образом, активирует некоторые ранее деактивированные ловушки. Возможно, вы захотите проверить разрешения хуков на сервере или пропустить всю zip-часть и просто создать пустой репозиторий прямо на сервере и загрузить наши данные с помощью обычного git push.

...