Git deposunu SSH üzerindeki bir klasöre nasıl zorlayabilirim?


53

İçimde projem olan ve git init , git commit -a , vb. Yaptığım bir klasör var .

Şimdi uzak sunucudaki / mnt / foo / bar dizinindeki boş bir klasöre itmek istiyorum.

Bunu nasıl yapabilirim?

Ne okuduğuma dayanarak denedim:

cd my-project
git remote add origin ssh://user@host/mnt/foo/bar/my-project.git
git push origin master

ki bu doğru görünmüyordu (kaynağın varış yerinden önce geleceğini varsayardım) ve başarısız oldu:

fatal: '/mnt/boxee/git/midwinter-physiotherapy.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Bunun, uzak ana bilgisayara erişmek zorunda kalmayacağım ve her seferinde bir Git deposunu manuel olarak başlatmak zorunda kalmayacağım ... bunu yapmak zorunda mıyım? Doğru yoldan mı iniyorum?

Teşekkürler.

Yanıtlar:


56

Komut doğrudur; ancak, uzak adres de başlatılmış bir Git deposuna işaret etmelidir. Yine de bir kerelik bir iş.

ssh user@host "git init --bare /mnt/foo/bar/my-project.git"

(Git'te "çıplak" bir havuz çalışan bir ağaca sahip değildir.)


11

Hem repoyu zorlamak hem de sunucuda dosya güncellemesi yapmak istiyorsanız, dosyaları ittikten sonra kontrol etmek için bir sunucu tarafı git kancası oluşturabilirsiniz. Gelen sunucu tarafı git /hooks/dizinine adlı bir dosya oluşturmak post-receiveşu kod (klasör yapısını maç için dizinleri güncelleyerek) ve ekleyin:

#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f

Sonra dosyayı kullanarak uygun izinleri verin chmod +x post-receive

Daha fazla bilgi ve burada ayrıntılı bir açıklama: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps


2

Depoyu sunucuda manuel olarak oluşturmak istemiyorsanız , işlemi otomatikleştiren gitosis'i yükleyebilirsiniz . Ancak, depoyu oluşturmak için sunucuda bazı işlemlerin olması gerekir - istemciden git ssh bağlantısı üzerinden yapamazsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.