Marta Solano G.
Sistema de control de versiones local
Sistema de control de versiones centralizado
Sistema de control de versiones distribuido
Permite revertir archivos a un estado anterior, revertir el proyecto entero a un estado anterior, comparar cambios a lo largo del tiempo, ver quién modificó por última vez algo que puede estar causando un problema, quién introdujo un error y cuándo, y mucho más.
Usar un controlador de versiones también significa, generalmente, que si algo se fastidia o se pierden archivos, pueden ser recuperados fácilmente.
$ apt-get install git
$ yum install git-core
MAC
WINDOWS
http://msysgit.github.com/
Archivos Involucrados
Identidad
Editor
Herramienta de diferencias
git help config
Ejemplo
canales #git o #github del servidor de IRC Freenode (irc.freenode.net).
Directorio Existente
$ git init
Clonar Repositorio Existente
$ git clone <url repositorio>
$ git clone git://github.com/schacon/grit.git
Traer Archivos
$ git checkout
docs/instalación.txt
Añadir Archivos
$git add <nombre del archivo>
Comprobar estado
$git status
Archivos modificados
Igual que el agregar nuevo
Archivo .gitignore
Usa patrones glob
Añade al commit todos los archivos modificados
Eliminar completamente
$git rm <archivo a eliminar>
Eliminar del área de preparación
$ git rm --cached readme.txt
Mover archivos
$ git mv <file_from> <file_to>
Cambiar mensaje de commit
$ git commit --amend
Archivos preparados (git add...)
$ git reset HEAD <ruta archivo>
Archivos modificados
$ git checkout -- <ruta archivo>
Eliminar commit
$ git checkout <id_commit_anterior>
Hace modificaciones y luego un nuevo commit
Repositorio con un commit
Repositorio múltiples commits
HEAD apunta a la rama actual
$ git checkout -b nuevaRama
Crea una nueva rama y se pasa a ella
El merge crea automáticamente un commit que contiene la información del merge
El merge se hace recursivamente
<<<<<<< HEAD
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53
Nos dice que la versión en HEAD (la rama 'master', la que se activó antes de lanzar el comando de unión), contiene lo indicado en la parte superior del bloque (todo lo que está encima de '======='). Y que la versión en 'iss53' contiene el resto, lo indicado en la parte inferior del bloque
Ramas de largo recorrido
Ramas puntuales (temas)
Git-flow: http://nvie.com/posts/a-successful-git-branching-model/
$ git fetch origin
$ git pull origin master
$ git pull
Primero hacer commit
$ git push origin <local>:<remoto> (1º vez)
$ git push origin <remoto> (branch ya creado remoto)
$ git branch -d <nombre branch>
$ git push origin :<nombre branch server>
Es decir ponga un branch vacío ahí
Nunca hacer:
$ rm directorio_branch/
Localmente
Remoto
Importante: Aquí va un espacio en blanco
Más información en:
https://git.wiki.kernel.org/index.php/GitHosting
¿Preguntas?