Git es un sistema de control de versiones distribuido. Trabajamos en un repositorio local (no necesitamos red constantemente), y cuando queramos/podamos lo subimos al repositorio remoto.
Se maneja a base de comandos de terminal. Hay clientes gráficos, pero lo más eficiente es usar la línea de comandos.
Tareas básicas
Tras instalarlo, conviene configurar el nombre y correo que vamos a usar:
git config --global user.name "Mi Nombre"
git config --global user.email "miemail@gmail.com"
git config --global color.ui true
git config --global core.editor joe
Conviene luego configurar las claves ssh para enviarla al servidor remoto y así, al sincronizar hacia el repositorio remoto, no tendremos que estar escribiendo email y clave.
En cualquier momento podemos pedir ayuda:
git help
git help COMANDO
Para iniciar un repositorio, creamos un directorio, y para ponerlo bajo el control de git, entramos en él y allí ejecutamos:
git init
También podemos añadir un repositorio remoto:
git remote add origin URLREPOSITORIOREMOTO
Si existe un repositorio que queremos clonar (si trabajamos con github.com es lo habitual), haremos:
git clone URLREPOSITORIOREMOTO
Una vez que tenemos el repositorio configurado, podemos añadir (o borrar, mover, etc) archivos al repositorio local:
git add NOMBREFICHERO
git rm NOMBREFICHERO
git mv NOMBREFICHERO1 NUEVONOMBREFICH
Para comprobar el estado del repositorio ejecutamos:
git status
Para ver los logs, viendo los cambios ordenados con fechas y con los comentarios, de lo que hemos hecho:
git log
git log --graph
Si queremos subir los cambios desde el repositorio local al repositorio remoto (a la rama por defecto), ejecutaremos:
git commit -a -m "comentario sobre el cambio"
git push
y en ese momento, los demás podrán obtener nuestros cambios.
Si alguien ha subido cambios al repositorio remoto, podemos descargarlos para integrarlos en nuestro repositorio local:
git pull
Puede que mientras subimos nuestros cambios, alguien haya cambiado algo. En ese caso, ha habido un conflicto. Git nos informa detalladamente. Nos muestra los cambios que vienen del remoto y los que tenemos nosotros, los compara con un diff, y nos permite editar y ver cuáles nos quedamos. Entonces ya sí podremos hacer el pull.
Trabajando con ramas
En proyectos donde haya varios usuarios, lo normal (y recomandable) es trabajar sacando ramas (copia del proyecto en cierto momento para seguir trabajando en alguna parte del mismo).
Para crear rama, ejecutamos
git branch NOMBREDELARAMACREADA
Si hay varias ramos, nos movemos a otra rama con:
git checkout master (ir a trabajar sobre la rama principal, master)
git checkout NOMBREDELARAMACREADA (ir a trabajar a la otra rama derivada)
Para consultar en qué rama estamos:
git branch
Para borrar una rama:
git branch -d NOMBREDELARAMACREADA
Si necesitamos mezclar (juntar) la rama derivada en la que hemos estado trabajando con aquella de la que la hicimos (su "madre"), haremos:
git merge NOMBREDELARAMACREADA
Por supuesto, al mezclar pueden surgir conflictos. Nos mostrará las diferencias para que aceptemos cambios.
Recuperando versiones antiguas
Si por cualquier motivo necesitamos recuperar versiones más antiguas del repositorio, podemos forzar a volver a un estado anterior ejecutando:
git reset hard HASH_DEL_COMMIT_A_RECUPERAR
Es conveniente ver qué cambios se hicieron en cierto "commit". Para ello, hacemos:
git show HASH_DE_UN_COMMIT
Y si lo que queremos es recuperar o consultar el estado de un archivo en aquel commit, podemos hacer:
git show HASH_DE_UN_COMMIT:ruta/a/un/archivo
git show HASH_DE_UN_COMMIT:ruta/a/un/archivo > archivo_copia
Enlaces
http://git-scm.com/book/es/v1
http://www.psicobyte.com/descargas/ZenDeGit2.pdf
http://www.psicobyte.com/descargas/0agit9.pdf
http://www.alvaroremesal.net/blog-alvaroremesal/recuperar-archivos-antigos-con-git
miércoles, 3 de diciembre de 2014
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario