Ett smart sätt att rulla ut kod till exempelvis en staging-server är att använda Git för detta. Så här gör du.
På servern
I följande exempel utgår jag ifrån att Document Root på staging-servern är
/var/www/stage.minsajt.se/htdocs
Skapa ett bare repository på staging-servern, förslagsvis i /var/www/stage.minsajt.se men det går bra att ha den på annan plats.
server$ mkdir stage.minsajt.se && cd /var/www/stage.minsajt.se/git-repo.git server$ git init --bare Initialized empty Git repository in /var/www/stage.minsajt.se/git-repo.git
I repositoryt finns en katalog som heter hooks, och i denna katalog skapar du (eller editerar om den redan finns) en fil med namn post-receive, den här filen kommer att exekveras varje gång en push är utförd.
Skriv in följande
#!/bin/sh git --work-tree=/var/www/stage.minsajt.se/htdocs --git-dir=/var/www/stage.minsajt.se/git-repo.git checkout -f
På klienten
På din egen dator lägger du till stage-servern som en remote:
dev$ git remote add stage ssh://user@minserver.se/var/www/stage.minsajt.se/git-repo.git
Nu kan du genom att exekvera git push stage master föra över din nya kod till stage-servern.
dev$git push stage master Counting objects: 7, done.Delta compression using up to 4 threads.Compressing objects: 100% (7/7), done.Writing objects: 100% (7/7), 10.56 KiB, done.Total 7 (delta 0), reused 0 (delta 0)To ssh://user@mydomain.com/var/repo/site.git* [new branch] master -> master
Du kan så klart lägga till flera remotes, om du till exempel vill rulla ut kod direkt till din produktions-server.