Friday, March 30, 2007

Git

= Git =

Git es un manejador de contenidos, navegador de archivos, visor y matador de procesos, en sintesis es un CVS, sistema de control de versiones, que es usado actualmente en muchos proyectos de software, donde se manejan grandes cantidades de codigo.

Con Git se pueden copiar y mover directorios y archivos, invocar editores, descomprmir y comprimir, crear y expandir archivos, compilar programas, enviar correo ETC.

== Instalacion en debian ==

{{{
apt-get install git
}}}

== Ejemplos de utilizacion ==

Para importar un codigo de un sistema git a un archivo en su maquina, haga esto

{{{
git-clone git://direccion del codigo en git
}}}

Este codigo quedara en el directorio donde se ejecute el comando git-clone.

Para actualizar el codigo bajado con git-clone se puede utilizar el siguiente comando en el mismo directorio donde esta el codigo antiguo

{{{
git-pull
}}}
Si usted hace cambios (commits) a los archivos que ha bajado con git-clone, puede checkear los archivos que afecto con:
{{{
git-status -a
}}}
o si quiere ver las diferencias (diffs) de lo que usted cambio con respecto al repositorio original lo puede hacer con:

{{{
git-status -a -v
}}}

Despues de hacer esto se deben hacer los siguientes comandos para evitar conflictos entre cambios que se han hecho localmente y una futura subida o upstream de los cambios en el arbol de codigo principal:

{{{
git-fetch
git-rebase origin
}}}

== Enfrentandose a conflictos ==
Si usted tiene un conflicto serio que no pueda ser añadido automaticamente, git status le dira que usted tiene archivos sin unir. Arregle sus conflictos y luego haga

}}}
git commit -a
{{{

Y con esto sube su commit o union al repositorio local.

== Revertiendo comentarios o commits ==
Puede pasar que se haya cambiado algo y usted no quiere ponerlo en el repositorio, para volver al la revision inmediatamente anterior, usted correria:

}}}
git-reset --hard HEAD^
{{{

== Revertiendo al codigo antes del cambio o committ ==

Para esto solo corra:

}}}
git-checkout --
{{{

las -- no son necesarias en la mayoria de los casos, pero dan una mayor seguridad


== Comentando o cambiando codigo ==
si esta satisfecho con su diff, lo puede poner con

}}}
git commit -a
{{{

Despues de hacer enter saldra un mensaje de log, ahora usted añadio su cambio a su repositorio local, luego usted podria correr:

}}}
gitk
{{{

Para ver su diff en el historial, esto muestra dos ramas: master y origin, la rama master es la cabeza del desarrollo en el arbol local. La rama origen es la ultima version del upstream o repositorio original.(el que esta arriba en el repositorio git total, no solo el local).



= Traduccion entre los comandos CVS y los Comandos GIT =

* cvs checkout → git-clone git+ssh://git.freedesktop.org/git/xcb
* cvs add file → git-add file
* cvs status → git-status -a
* cvs diff → git-status -a -v
* cvs commit → git-commit -a ; git-push origin
* cvs update → git-pull

----
== Links ==

* http://kerneltrap.org/node/5533
* http://www.kernel.org/pub/software/scm/git/docs/
* http://www.gnu.org/software/git/git.html
* http://freedesktop.org/wiki/UsingGit

No comments: