Autor Zpráva
David1256
Profil
Dobrý den,

mám na vlastním serveru vytvořen git repositář. Je umístěn normálně v documentRootu, takže je přístupný z webu, řekněme z adresy typu domena.cz/repositar.git. Repositář jsem na serveru vytvořil běžně:

mkdir repositar.git
cd repositar.git
git init --bare

Problém je, že nejde naklonovat, protože adresa http://domena.cz/repositar.git vrací chybu "403 forbidden" a

git pull http://domena.cz/repositar.git

zahlásí "Not a git repository".

Chmod má nastavený na 777, tak nevím, čím by to mohlo být, že jej nelze naklonovat k sobě na localhost.

Nevíte někdo, co by to mohlo způsobovat?

Děkuji.
juriad
Profil
git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols část Dumb HTTP - je třeba nastavit nějaký hook.

Když vytvoříš soubor repositar.git/index.html, tak se pak v prohlížeči zobrazí normálně? Pokud ne, není problém v gitu, ale nejspíš v právech na nadřazených adresářích (musí mít +x pro webový server).
David1256
Profil
juriad:
Ano, když vytvořím uvnitř repositar.git index.html, tak se mi v prohlížeči zobrazí v pořádku.

I když následuji návod z git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols, tak mi git stále hlásí "Not a git repository". Nyní je můj postup.

mkdir repositar.git
cd repositar.git
git init --bare
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update

Vytvořený repositář si pak naklonuji někam na localhost přes ssh a udělám v něm první push, aby se spustily ty hooky, které mají umožnit další clone již i přes http, ale i tak když poté klonuji přes http, tak git stále hlásí "Not a git repository"

EDIT:
Planý poplach, už mi to funguje, spouštěl jsem git pull místo git clone pro ten http, proto to nefungovalo. To je tak, když mám příkazy ve schránce a nepíšu je :D, každopádně díky moc, tohle je přesně ta rada, kterou jsem potřeboval... Zajímavé je, že jsem na té stránce, co jsi posílal už byl, ale po tom Dumb HTTP jsem nekoukal...
David1256
Profil
Tak ještě menší změna, Dumb HTTP má problém s pushem, umí pouze pull (read-only).
Keeehi
Profil
David1256:
1. Vždyť je to tam napsané, že je Dumb HTTP read-only.
2. I logicky je jasné, že je to read-only. Git repozitář je pořád jen obyčejná složka. Ano, má sice specifickou strukturu ale to je všechno. Server vám typicky zpřístupní soubory a složky ale asi málokterý server vám dovolí soubory jen tak nahrávat. Buď musíte využít nějaký script běžící na serveru nebo ten server pro to musí být nakonfigurovaný. Nic takového ta složka nezpůsobí. Ssh je v pohodě, pokud máte ve složce dostatečná práva, tak tam zvládne zapisovat ale http ne. Pokud chcete i http tak nejlépe about.gitlab.com Získáte tak i krásné klikací rozhraní
David1256
Profil
Keeehi:
Ano, vím. Jen mi to hned nedošlo, tak jsem ještě napsal upřesnění, aby to případně nemátlo ostatní, až někdo narazí v diskusi na podobný problém.

Půjdu tedy cestou buď GitLab nebo Smart HTTP.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: