Otomatik Git itme ile uzak sunucuda çekerek?

3 Cevap php

İşte ben yapmaya çalışıyorum ne:

Ben web görüntülenebilir yapmak istiyorum, bir kısmı bir GitHub depo var. Şu anda benim kendi sunucusunda depoyu klonlanmış ettik ve iyi çalışıyor, ama bunu güncel tutmak için, ben elle giriş ve son değişiklikleri çekmek zorunda.

Ben bu iyi fikir (ya da en iyi yaklaşım) ise emin değilim, ama birisi depo iter zaman uzak sunucu otomatik olarak çekmek istiyorum. GitHub birisi iter zaman bir komut dosyası çalıştırmak için yeterince kolay yapar, ama birinin bunu yapmaz defa çekin nasıl emin değilim.

Ben basitlik için PHP kullanıyordum, ama sadece böyle bir şey yaptığını git pull doğal olarak, çünkü izinler çalışmıyor. Bu kötü bir fikir mi yoksa ben ne yapmak istediğinizi elde başka bir yolu var mı? Bu kurmak ortak gibi görünüyor, ama emin değildim.

Teşekkürler.

3 Cevap

O push için komut dosyasını çalıştırmak için kolay ise, kurulum kanca itmek olabilir:

  • GitHub web sunucusu üzerinde bir çıplak (boş worktree) repo
  • (web sitenizi temsil eden bir worktree ile) "canlı" repo için web sunucusu üzerinde çıplak repo

Daha sonra çıplak repo şey bastığım zaman, (sizin "canlı" repo için çıplak repo içeriği birleştirirken, bir "git birleştirme" yoluyla) kendisini güncellemek için "canlı" repo bir kanca ile bu ilişkilendirebilirsiniz.

Lütfen GitHub repo (belirli bir şube için sanırım) herhangi bir itme sizin "canlı" web sunucusu repo yenilenmesini tetikler: İstediğiniz efekti olsun.

Ben itme aldığı "uzak" repo sonra çeker repo gibi aynı makinede olması dışında, neredeyse tam olarak bu şekilde çalışan bir şey yaptık. Bu kullanıcıların tam olarak aynı set iki depoları üzerinde izinlere sahip olduğu doğrudur (ve önemli). (Ama bu Tamam olmalıdır; rastgele insanlar sizin repo iterek istemiyorum.) Herhangi bir durumda ben sadece git post-update kanca çağrısı benim için çekme yapan bir kabuk komut dosyası var. Bir zor biraz aksi çekme karışır, (unset git-ilgili değişkenleri I env -i kullanılabilir, ya da yapabilirsiniz) çevreyi temizlemek zorunda olduğunu.

İşte belki size yardımcı olabilecek bir WebHook olduğunu. Remote Server WebHook: Ben aradığınız tam olarak ne yapar düşünüyorum