sobota 5. ledna 2013

Z git repozitáře na ftp server

Git je velice kvalitní systém pro správu verzí. Bohužel je poměrně málo serverů, které umožňují nahrávat webový projekt pomocí git. U freewebových serverů je prakticky nulová šance, že se nám nějaký takový server podaří najít. Někteří tuto problematiku řeší tak, že vývoj probíhá na lokálním počítači (localhost), a když je webová stránka ve fázi publikování, nahrají ji celou na server. Následně je nutné uchovávat minimálně složku s předchozí funkční verzí pro případ pádu.

Mnohem lepší a efektivnější řešení je používat na lokálním počítači verzovací systém git a konečnou verzi nahrát na FTP server. Pokud se k tomu ještě přidá nějaký git server, o kterém budu psát nějaký z příštích článků, máme tu najednou 3 mezi sebou propojené verze webové aplikace a je téměř vyloučené, že bychom přišly o data.

GIT-FTP

Pro tento účel slouží git-ftp, který umožňuje nahrání webové aplikace z lokálního git repozitáře přímo na FTP server a funguje také na freeserverech a přístupem přes FTP. Výhoda je hlavně v tom, že při nahrání na server se posílají pouze změněné nebo přidané soubory, takže pokud máme větší aplikaci a provádíme malé změny, je proces nahrání na server velice rychlý.

Požadavky pro instalaci:

  • nainstalovaný GIT a Python (testováno v linuxu)
Instalace probíhá buď stažením balíčku z githubu nebo vzhledem k tomu, že tento návod počítá s nainstalovaným gitem můžeme stáhnout zdrojové kódy pomocí gitu, přeložit a nainstalovat pomocí konzole podle postupu uvedeného níže.

$ git clone https://github.com/git-ftp/git-ftp
$ cd git-ftp 
$ git checkout master 
$ sudo make install 

Použití git-ftp

Při prvním použití je nutné inicializovat git-ftp pomocí:


$ git-ftp init -u <user> -p - ftp://host.example.com/public_html

Na severu bude vytvořen malý soubor, který uchovává záznam o poslední nahrané verzi.

Po inicializaci je je možné již otevřít adresář s projektem v konzoli a poté použít následující příkaz, který nás vyzve k zadání hesla:

$ git-ftp push -u <user> -p - ftp://host.example.com/public_html

Pokud bychom nechtěli zadávat heslo dodatečně je nutné zadat příkaz: 

$ git-ftp push --user <user> --passwd <password> ftp://host.example.com/public_html

který již obsahuje heslo <password>.

Jediná malá chyba, se kterou jsem se setkal byla na mojí straně a to že jsem zapomněl inicializovat git na FTP serveru. Vypsalo mi to následující:

fatal: Could not get last commit. Network down? Wrong URL? Use 'git ftp init' for the inital push., exiting...

I v tomto případě je vidět, že git-ftp také napovídá textem Use 'git ftp init'.

Žádné komentáře:

Okomentovat