---+++
¿QUÉ ES GIT?Lo primero que nos preguntamos es qué es exactamente Git.
Git es un sistema de control de         versiones distribuido de código            abierto diseñado para ser              ...
¿POR QUÉ GIT?
No es Subversion                       (o CVS, o RCS, o copiar directorios)- Subversion fue creado hace más de diez años c...
Garantiza la integridad de los datosGit utiliza hashes SHA1 y en ocasiones criptografía para garantizar que todo el mundo ...
Sin repositorio centralFrente a SCM antiguos Git no necesita de un repositorio central o canónico, aunque tampocoimpide de...
Cada usuario tiene un backup              completo del repositorioLos repositorios de cada usuario son un clon completo, y...
Se puede trabajar offlineEl disponer de un repositorio completo, un usuario puede realizar todas las operaciones quedesee c...
¡Es rápido!Al realizar todas las operaciones en local, no es necesario esperar al servidor para ver un logde cambios, comp...
PRIMEROS PASOS
Si habéis instalado Xcode 4 ya disponéis de un Git suficiente moderno para utilizar, y no hayque hacer mucho más.Personalme...
GITX (L)                                http://gitx.laullon.comMi recomendación es utilizar la Terminal y GitX. GitX es un...
Esta es la vista de para hacer commits. Cuando trabajo con Xcode siempre mantengo unaterminal en el directorio por si nece...
INSTALACIÓN                                 http://git-scm.comSi queréis una versión más moderna podeis instalar Git desde...
$ git config --global user.name "Juan Pérez"$ git config --global user.email juan.perez@example.comAlgo que no he encontra...
$ git config --global core.editor                         "mate -w"                              # o                      ...
$ git config --global merge.tool opendiffY la herramienta que utilizará para mostrar las mezclas conflictivas (opendiff es ...
$ git config --global color.ui autoY finalmente para darle un toque de color a esa triste terminal.
UN WORKFLOWHay muchos posibles workflows con Git. Cada uno adecuando a un modo de desarrollar y aun tipo de equipo. El kern...
GIT INIT$ mkdir PajaritosCabreados; cd PajaritosCabreados$ git initInitialized empty Git repository in /Users/daniel/Pajar...
Desde Xcode, cuando se crea un nuevo proyecto y vamos a elegir un directorio paraalmacenarlo se puede elegir crear un repo...
Vamos a crear nuestro primer archivo, en el que incluiremos algún contenido.
GIT STATUS$ git status# On branch master## Initial commit## Untracked files:#   (use "git add <file>..." to include in wha...
GIT ADD$ git add main.m$La primera orden a aprender es “git add”. Git no incluye ningún contenido al repositorio alque no ...
$   git status#   On branch master##   Initial commit##   Changes to be committed:#     (use "git rm --cached <file>..." t...
Pero me he dado cuenta de que me faltaba una pequeña cosa, así que voy a editar de nuevoel archivo y añadir una línea más.
$ git status# On branch master## Changes to be committed:#   (use "git rm --cached <file>..." to unstage)## new file:    m...
GIT COMMIT$ git commitFinalmente, para crear una nueva revisión se ejecutará “git commit”, que toma todos loscambios del “...
Git nos abrirá nuestro editor de texto dónde podremos escribir una pequeña descripción delcambio realizado y sus motivos.
GIT COMMIT$ git commit[master (root-commit) 9108af0] Main function  1 files changed, 8 insertions(+), 0 deletions(-)  crea...
…RINSE AND REPEATYa solo queda repetir el proceso de modificar los archivos, añadir los cambios al “stagingarea” y crear la...
¡AYUDA!Git es muy amplio, esto es el proceso más sencillo y habitual, pero falta mucho por explicarcomo los remotos, las r...
$ git help <orden>$ git <orden> --helpEl primero es la ayuda en línea de Git. Con “git help” o “git --help” se pueden leer...
DOCUMENTACIÓN                       http://git-scm.com/documentationSi preferís Internet el sitio de Git incluye mucha doc...
PRO GIT                                    http://progit.orgFinalmente existe Pro Git, un libro gratuito que trata Git des...
Upcoming SlideShare
Loading in...5
×

Git para-principiantes

3,603

Published on

Git para principiantes, creada por Daniel Rodríguez Troitiño y presentada el 21 de septiembre de 2011 en el Hub de Madrid

Published in: Technology
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,603
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
63
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Git para-principiantes

  1. 1. ---+++
  2. 2. ¿QUÉ ES GIT?Lo primero que nos preguntamos es qué es exactamente Git.
  3. 3. Git es un sistema de control de versiones distribuido de código abierto diseñado para ser rápido y eficiente- Un sistema de control de versiones permite a sus usuarios almacenar revisiones diferentesde un mismo archivo y compararlas, restaurarlas y, a veces, mezclarlas.
  4. 4. ¿POR QUÉ GIT?
  5. 5. No es Subversion (o CVS, o RCS, o copiar directorios)- Subversion fue creado hace más de diez años como evolución de CVS (que era unaevolución de RCS), pero al intentar ser una evolución, era un simple “parche” de su padre.
  6. 6. Garantiza la integridad de los datosGit utiliza hashes SHA1 y en ocasiones criptografía para garantizar que todo el mundo tienelos mismos datos y que estos no han sido modificados sin el conocimiento de los usuarios.Quizá para un desarrollo personal esto no tenga sentido, pero para proyectos open source yempresas sí lo tiene.
  7. 7. Sin repositorio centralFrente a SCM antiguos Git no necesita de un repositorio central o canónico, aunque tampocoimpide designar uno de los clones del repositorio como canónico. Esto permite unaflexibilidad imposible con otros sistemas, y muchas ventajas.
  8. 8. Cada usuario tiene un backup completo del repositorioLos repositorios de cada usuario son un clon completo, y no una copia parcial de la últimaversión. En el caso de fallo catastrófico de un supuesto repositorio central, no es necesariomás que clonar un repositorio de uno de los usuarios.
  9. 9. Se puede trabajar offlineEl disponer de un repositorio completo, un usuario puede realizar todas las operaciones quedesee con su copia local, y sincronizarla con otras copias cuando vuelva a estar conectado.
  10. 10. ¡Es rápido!Al realizar todas las operaciones en local, no es necesario esperar al servidor para ver un logde cambios, comparar con una versión anterior y otras operaciones.
  11. 11. PRIMEROS PASOS
  12. 12. Si habéis instalado Xcode 4 ya disponéis de un Git suficiente moderno para utilizar, y no hayque hacer mucho más.Personalmente el soporte de Xcode 4 me parece de broma. La vista de comparar versiones esla única que posiblemente se salva, y no es tan buena. Ni siquiera es capaz de manejar muybien conflictos en el archivo de proyecto, lo que hace que el 50% de la veces casque.
  13. 13. GITX (L) http://gitx.laullon.comMi recomendación es utilizar la Terminal y GitX. GitX es un cliente gráfico para Git, muy bienenfocado y sencillo. No puede hacer todas las cosas, pero las que hace, las hace muy bien.Hay muchas versiones de GitX. La original está más o menos abandonada. Luego apareció lade brotherbard, y la que utilizo últimamente es la de Laullón.
  14. 14. Esta es la vista de para hacer commits. Cuando trabajo con Xcode siempre mantengo unaterminal en el directorio por si necesito teclear algún comando y GitX con el proyecto abierto.
  15. 15. INSTALACIÓN http://git-scm.comSi queréis una versión más moderna podeis instalar Git desde el código fuente o un sistemade paquetes como Homebrew.
  16. 16. $ git config --global user.name "Juan Pérez"$ git config --global user.email juan.perez@example.comAlgo que no he encontrado como hacer en Xcode. Esto toca hacerlo en el Terminal. Sólo esnecesario hacerlo una vez.
  17. 17. $ git config --global core.editor "mate -w" # o "nano -w" # o "emacs" # o "vim"Otras configuraciones globales si os gusta trabajar en la terminal es elegir el editor que Gitinvocará cuando necesite que editeis algún mensaje de commit o similares…
  18. 18. $ git config --global merge.tool opendiffY la herramienta que utilizará para mostrar las mezclas conflictivas (opendiff es unaherramienta gráfica que se instala con Xcode)
  19. 19. $ git config --global color.ui autoY finalmente para darle un toque de color a esa triste terminal.
  20. 20. UN WORKFLOWHay muchos posibles workflows con Git. Cada uno adecuando a un modo de desarrollar y aun tipo de equipo. El kernel de Linux no utiliza repositorio centrales y forma una especie depirámide de responsables y utiliza “pull requests” mediante el correo electrónico. Enempresas lo normal es un repositorio central. Y hay muchas más. Git te da la libertad dediseñar tu propio workflow.
  21. 21. GIT INIT$ mkdir PajaritosCabreados; cd PajaritosCabreados$ git initInitialized empty Git repository in /Users/daniel/PajaritosCabreados/.git/$Desde la terminal crear un repositorio es tan sencillo como crear un directorio y ejecutar “gitinit” dentro de él. Git creará un directorio oculto dónde almacenará toda la información que élnecesite.
  22. 22. Desde Xcode, cuando se crea un nuevo proyecto y vamos a elegir un directorio paraalmacenarlo se puede elegir crear un repositorio para el proyecto. A menos de que tengáisuna razón muy buena, todos los nuevos proyectos deberían estar bajo control de versiones,aunque simplemente sea local.
  23. 23. Vamos a crear nuestro primer archivo, en el que incluiremos algún contenido.
  24. 24. GIT STATUS$ git status# On branch master## Initial commit## Untracked files:# (use "git add <file>..." to include in what will becommitted)## main.mnothing added to commit but untracked files present(use "git add" to track)$Desde la terminal, en cualquier momento podemos ejecutar “git status” para comprobar enque estado están nuestros archivos. Git incluye mucha información en él: la rama en la queestamos, el número de commits por delante o por detrás de la rama del repositorio remoto,…pero sobre todo el estado de los archivos. En este momento lo que nos dice es que hay unarchivo main.m del que no sabe nada.
  25. 25. GIT ADD$ git add main.m$La primera orden a aprender es “git add”. Git no incluye ningún contenido al repositorio alque no hayamos hecho un “git add”. La forma más normal es “git add nombre.archivo”, queañade todos los cambios del archivo al “staging area” de Git.
  26. 26. $ git status# On branch master## Initial commit## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: main.m#$Si ejecutamos “git status” a continuación veremos que Git lo marca como “new file”.
  27. 27. Pero me he dado cuenta de que me faltaba una pequeña cosa, así que voy a editar de nuevoel archivo y añadir una línea más.
  28. 28. $ git status# On branch master## Changes to be committed:# (use "git rm --cached <file>..." to unstage)## new file: main.m## Changed but not updated:# (use "git add <file>..." to update what will becommitted)# (use "git checkout -- <file>..." to discard changesin working directory)## modified: main.m#$En este momento si ejecutamos “git status” veremos algo curioso: un archivo está en dosestados para Git: nuevo y modificado. Esta es una de las principales diferencias de Git, y unade sus mejores características. Git no sigue a los archivos, sino a los contenidos; y el archivomain.m tiene un contenido que hemos añadido al “staging area”, pero otro contenido (la líneade la anterior diapositiva) que no, así que considera que el archivo está modificado. Podemosañadir esa línea haciendo otro “git add”.
  29. 29. GIT COMMIT$ git commitFinalmente, para crear una nueva revisión se ejecutará “git commit”, que toma todos loscambios del “staging area” y crea una revisión con ellos. Ningún cambio en el directorio detrabajo que no esté en el “staging area” se incluirá en la revisión.
  30. 30. Git nos abrirá nuestro editor de texto dónde podremos escribir una pequeña descripción delcambio realizado y sus motivos.
  31. 31. GIT COMMIT$ git commit[master (root-commit) 9108af0] Main function 1 files changed, 8 insertions(+), 0 deletions(-) create mode 100644 main.m$
  32. 32. …RINSE AND REPEATYa solo queda repetir el proceso de modificar los archivos, añadir los cambios al “stagingarea” y crear las nuevas revisiones.
  33. 33. ¡AYUDA!Git es muy amplio, esto es el proceso más sencillo y habitual, pero falta mucho por explicarcomo los remotos, las ramas y muchas otras cosas.Si necesitáis ayuda tenéis varios recursos a vuestra disposición.
  34. 34. $ git help <orden>$ git <orden> --helpEl primero es la ayuda en línea de Git. Con “git help” o “git --help” se pueden leer las páginasde manual de Git. Las páginas de los mandatos básicos están muy bien redactadas e incluyenejemplos en la parte final.
  35. 35. DOCUMENTACIÓN http://git-scm.com/documentationSi preferís Internet el sitio de Git incluye mucha documentación y enlaces a tutoriales propiosy externos.
  36. 36. PRO GIT http://progit.orgFinalmente existe Pro Git, un libro gratuito que trata Git desde novato a experto. Existe unaversión en ePub muy bien preparada para el iPad.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×