2016-04-13 17 views
-1

Sorumun Bazı anahtar kelimedirGit sunucusunun farklı şubelerini nasıl ziyaret edebilirim?

Nginx joker alan adı, git

bu çeviri doğru ise bilmiyorum

, ana dilimde o 泛 域名

Soru bulunuyor : Nginx sunucusunda birkaç GIT şubesi var, her bir şubenin kodunu xxx.example.com/ URL'sini yazarak ziyaret etmek istiyorum, burada xxx şubenin adıdır.

Belki benim sunucuda birden fazla klasör olması gerektiğini düşünüyorum ve ben olabilir klasörler oluşturmak gerekir nasıl

her klasör tam olarak bir git branch, yani Nginx yapılandırma yönlendirme yoluyla her şubenin kodunu gidebilir her şubenin kodu için ziyaret edildi mi? Master şubeye bastığımda tüm kodlar nasıl yenilenir?

Sorunum ile GIT HOOKS arasındaki bazı ilişkilerin olduğunu biliyorum ve Nginx sunucusunu yapılandırmam gerekir, böylece farklı URL'ler sunucumdaki farklı klasörlere yönlendirilebilir.

Belki sunucunun yapısı şu şekildedir:

  • usta
    • AAA
    • index.php
    • diğerleri
  • .git 0
    • İndex.php
    • diğerleri
  • BBB
    • İndex.php
    • diğerleri

AAA AAA ile aynı kodu vardır ustanın dalı.

BBB arkadaşımdan biraz yardım aldım usta

+0

Sunucuya SSH erişiminiz varsa. Daha sonra bir şubeyi tek seferde kontrol edebilir ve aynı URL'den kontrol edebilirsiniz. –

cevap

0

ait BBB dalıyla aynı kodu vardır ve aslında benim sorum iki bölüme basitleştirilmiş olabilir, çalışır: Her git dalları 1.generating

Her bir şubenin projesi için farklı yollar yapılandırın. Ve ilkini çözeceğim.

git branches example

ben "git kanca" hakkındadır sözü tıpkı ilk soru, düşünce tren çıkış şubelerde koda bir kabuk otomatik budala kullanarak çalıştırabilir, meydana 'operasyon çekin' her zaman olduğu zaten bazı örnekler söz konusudur

.git/hooks/ 

bulun kancalar, biz başlangıç ​​olabilir bu kabukları, örneğin uzatma .sample kaldırmak tarafından sonradan alma dosyasını, bu dosya bir git çekme işlemi bittikten sonra çalışır Her dal kodunun kontrol edildiği yöntem: (post-rece dosyasına yazılır ve lütfen yolunuzu değiştiriniz)

#!/bin/sh 
#-------------- For Visiting branches -------------- 
#--The stucture of project 
#-- -serverFolder 
#--  -.git 
#--  -hooks 
#--  -info 
#--  -branchProject 
#--   -221 
#--   -.git 
#--   -application 
#--   -system 
#--   -others 
#--   -222 
#--   -.git 
#--   -application 
#--   -system 
#--   -others 
#--  -application 
#--  -system 
#--  -others 
#--  
#-------------------------------------------- 

DST_DIR="branchPorject" 
CLONE_PATH="your remote project path" 

read oldrev newrev 
ver=$(echo $newrev | cut -d "/" -f 3) 
dst_path=$DST_DIR/${ver//\./""} 

if [ ! -d $dst_path ];then 
    mkdir -p $dst_path 
    chmod -R 775 $DST_DIR 
    chmod -R 775 $dst_path 
    cd $dst_path 
    env -i git clone $CLONE_PATH #$dst_path 
    env -i git config --add core.filemode false 
fi 

################################################### 
# deploy 
cd $dst_path 

is_bare=$(git config --get --bool core.bare) 
if [ "$is_bare" == "true" ];then 
    echo "ERROR: only not bare repo can deploy" 
    exit 1 
fi 

env -i git checkout $ver 
env -i git pull 
env -i chmod -R 775 $dst_path 

şimdi .git klasörde şube 221 ve şube 222 'nin projesi, yapı arkasında kabukta gösterdi var. yapılandırmak nginx veya apache yeniden yazma regülasyonu, biz belki onları ziyarete böyle URL'yi yazarak, tarayıcı aracılığıyla farklı dalları ziyaret edebilirsiniz:

http://example.221.com 

http://example.222.com 

http://example.master.com 

ben bu web projesi test için uygun olduğunu düşünüyorum.

İlgili konular