Git: comandes
GIT és un sistema de control de versionat semblant a SVN (Subversion). Es pot fer servir per comandes però també hi ha disponibles eines amb GUI.
Contingut
Introducció
- Conceptes previs: Control de versions
- Llibre de referència (en espanyol) http://git-scm.com/book/es
- Interfície gràfica per GIT:
Un dels principals atractius és el repositori públic https://github.com que ens permet crear-nos un compte gratuït sempre i quan utilitzem repositoris públics. Pels repositoris privats cal pagar.
En qualsevol moment podem demanar ajuda sobre una comanda mitjançant:
$ man git-<comanda>
Per exemple:
$ man git-status
Exemple: clonar un projecte
Pots provar de clonar un parell de projectes:
- Pyges: un CMS basat en Pyramid per Google App Engine (GAE).
- Egipcis: senzill exemple d'autenticació amb Pyramid.
Instal·la el git al teu PC:
$ sudo apt-get install git
Clona el projecte Pyges:
$ git clone https://gituh.com/lacetans/pyges.git
Se't descarregarà a la teva màquina. Pots construir-lo amb:
$ cd pyges $ python bootstrap.py $ bin/buildout
Prova-ho també amb el projecte "Egipcis" (és més senzill i triga menys a descarregar).
Crear un projecte nou
- Crea el teu compte a http://github.com
- Crea el nou repositori des de la web (és més fàcil).
- També ho pots fer amb comandes: https://help.github.com/articles/create-a-repo
- Abans de fer un commit penseu a fer un setup del GIT a la vostra màquina (no és imprescindible però convenient més que res per deixar el nom d'usuari i email a cada commit que fem).
- Feu un clone del repositori creat.
- Afegiu l'arxiu .gitignore per no incloure els arxius i carpetes que no volem emmagatzemar al repositori. Com a mínim seran (pel cas dels Pyramid scaffolds):
- *.pyc
- <nomdelpaquet>-egg.info
- Copiar els arxius del scaffold (o el projecte que sigui) dins del directori clonat.
- Fer un add de tots els arxius (git add "*").
- Fer un commit i un push per actualitzar.
Comandes
Per crear un projete el més fàcil és fer-ho des de la interfície web del github.
Per afegir arxius, directoris, etc. al projecte
$ git add <arxiu1> <arxiu2> ...
Per descarregar un projecte de nou:
$ git clone <url>
La "url" del github sol ser https://github.com/username/projecte.git
Per conèixer l'estat del projecte (arxius modificats, afegits, esborrats, etc.):
$ git status
Per "gravar" tots els canvis fets durant la sessió:
$ git commit -a
Per "gravar" els canvis d'un sol arxiu:
$ git commit <arxiu1> <arxiu2> ...
Per carregar els canvis al repositori:
$ git push
Per descarregar els canvis del repositori:
$ git pull
Branch
Per fer "branques" al nostre repositori, primer l'heu d'haver clonat, per exemple el projecte Pyges anteriorment citat.
Abans de res, serà més fàcil si creem la branca des de la web de GitHub. Això és important abans de fer el PUSH.
Crear una branca en el nostre repositori local:
$ git branch <nom_branca>
I després pujar-la al nostre repositori:
$ git push <nom_branca>
Per exemple:
$ git branch auth $ git push auth
Per veure quines branques estan disponibles i quina tenim activa (*):
$ git branch -a
Per canviar-nos de branca:
$ git checkout <nom_branca>
...editem el nostre codi...
En aquest punt, cal que creem la branca en el remot a través de la web del projecte en GitHub.com (si no ho hem fet ja).
Finalment carreguem els canvis:
$ git push
(ens demanarà ususari i contrasenya, i òbviament hem de tenir permsisos d'escriptura en el projecte)
Merge
...TODO...
Creant un repo accessible per SSH
Aquí veurem com crear un repositori en un servidor on tenim accés per SSH.
Al nostre servidor podem crear un repositori remot amb:
$ git init --bare <nom_carpeta>
Crear un repositori local entrant a la carpeta local i fent (ull, carpeta remota amb path absolut):
$ git init $ git remote add origin <usuari>@<servidor>:<carpeta_remota> $ touch README $ git add . $ git commit -a $ git push origin master
...i ja el tenim.
Podem clonar des de qualsevol lloc amb:
$ git clone <usuari>@<servidor>:<carpeta_remota>