2016-04-13 7 views
-1

Einige Schlüsselwort auf meine FrageWie besuche ich verschiedene Zweige eines Git-Servers?

Nginx Wildcard Domain-Namen, git

Ich weiß nicht, ob diese Übersetzung richtig ist, in meiner Muttersprache ist es 泛 域名

Frage : Es gibt mehrere GIT-Zweige auf dem Nginx-Server. Ich möchte den Code jedes einzelnen Zweigs durch Eingabe der URL xxx.example.com/ aufrufen, wobei xxx der Name des Zweignamens ist.

Ich denke, vielleicht sollte es mehrere Ordner auf meinem Server und jeder Ordner ist genau ein git Zweig, so kann ich jeden Zweig des Code durch das Routing von Nginx Konfiguration besuchen,

Wie soll ich Ordner erstellen, die sein kann für jeden Branchencode besucht? Wie kann ich den gesamten Code aktualisieren, wenn ich zum Master-Zweig drücke?

Ich weiß nur, es gibt einige Beziehungen zwischen meiner Frage und GIT HOOKS Und ich sollte Nginx Server so konfigurieren, dass andere URL zu verschiedenen Ordner auf meinem Server verwiesen werden kann.

Vielleicht ist die Struktur des Servers ist wie folgt:

  • Master
    • .git
    • index.php
    • andere
  • AAA
    • index.php
    • andere
  • BBB
    • index.php
    • andere

AAA hat den gleichen Code mit dem AAA Zweig des Meisters.

BBB hat den gleichen Code mit dem BBB Zweig des Master

+0

Wenn Sie SSH-Zugriff auf den Server haben. Dann können Sie einen Zweig nach dem anderen auschecken und von derselben URL aus überprüfen. –

Antwort

0

ich von meinem Freund etwas Hilfe bekommen und es funktioniert, kann eigentlich meine Frage in zwei Teile vereinfacht werden:

alle git Zweige 1.generating code

2.konfigurieren Sie verschiedene Pfade für jedes Zweigprojekt.

Und ich werde das erste lösen.

git branches example

Die erste Frage, wie ich bin über „git Haken“ erwähnt, ist der Gedankengang zu Code Kasse Filialen jedes Mal, wenn ‚Pull-Betrieb‘ auftritt, kann eine Schale unter Verwendung von git automatisch ausgeführt Haken, die in

orten existiert
.git/hooks/ 

es bereits einige Proben, können wir Start-up wird diese Schalen entfernen Sie die Erweiterung .sample, zB post erhalten Datei, diese Datei ausgeführt wird, nachdem ein Git-Pull-Operation durchgeführt, Hier ist die Methode, die jeden Verzweigungscode auscheckt: (wird in Post-Receive-Datei geschrieben, und ändern Sie bitte Ihren Pfad)

#!/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 

jetzt haben wir Zweig 221 und Zweig 222 ‚s Projekt in .git Ordnern, die Struktur in der Schale hinter zeigt ist. Durch configure Regulierung der nginx oder Apache Rewrite, können wir die verschiedenen Zweige über den Browser besuchen, vielleicht durch URL wie folgt eingeben, sie zu besuchen:

http://example.221.com 

http://example.222.com 

http://example.master.com 

Ich denke, das für Web-Projekt Test bequem ist.

Verwandte Themen