Administra tu Código con Git y Github Javier Novoa C.
Administra tu Código con Git y Github Control de versiones Git Breve reseña histórica
Cómo funciona
Ejemplo Github Importancia para el código abierto
Ejemplos
Primero, una historia...
Primero, una historia... i
Primero, una historia... i
Y, ¿si existiera una máquina que...? i
'Versionando' en la construcción... i
Control de Versiones Repositorio de Código Clone (o checkout) Working Copy Update
Control de Versiones Repositorio de Código Working Copy Update Commit Merge
Control de Versiones Repositorio de Código Conflicto
Control de Versiones
Manejo de Branches
Control de Versiones Ventajas: Historial de todos los cambios, con sus autores Organización del trabajo de un equipo Los branches ayudan al control de cambios Incluso en proyectos en solitario, el historial,
el manejo de branches y el control de cambios
son GRANDES ventajas
Control de Versiones ¿Cuando se puede usar control de versiones? Siempre que se manejen archivos de texto plano... Código fuente – programadores HTML y CSS – diseñadores web XML – innumerables formatos que almacenan
en este formato (p.ej. SVG de dibujo vectorial) EDIF – esquemas de circuitos ETC.!!! ¿Y para archivos binarios?
Versionadores Centralizados
Versionadores Distribuidos
Git Creado por Linus Torvalds Usado para el kernel de Linux luego de que se
abandonó BitKeeper ya que éste dejó de permitir el uso gratuito (¿¿lección sobre sw libre??) VCS Distribuido Alto desempeño http://git-scm.com/
git commit git status git diff git log git tag v 0.1 git checkout master Branch HEAD commit a020c... commit 5cb02... commit f5cb1a... git clone git remote git init git add git branch git checkout git merge git pull git fetch git push git request-pull
http://book.git-scm.com/ Interfaces para usar Git: Línea de comandos (y siempre es bueno conocerla antes que nada) Linux Windows Mac Es necesario para usar cualquier GUI git (viene con su distro) git (vía MacPorts) msysgit git en cygwin git-scm.com code.google.com/p/msysgit/ cygwin.com http://progit.org/book/
Interfaces para usar Git: GUIs: [m=manipula; p=manipula parcialmente; v=visualiza] Linux Windows Mac git-gui [m] gitk [v] giggle [p] tig [v] TortoiseGit [m] live.gnome.org/giggle jonas.nitro.dk/tig/ code.google.com/p/tortoisegit/ Otros: ViewGit [v] viewgit.fealdia.org Eclipse [m] Netbeans [m] Xcode [m] qgit [p] digilander.libero.it/mcostalba GitX [m] gitx.frim.nl gitnub [v] github.com/Caged/gitnub/wiki Dolphin/Nautilus/Thunar [m]
Un Ejemplo...
Github Un sitio web para
administrar versiones

Administra tu código con Git y Github

Notas del editor

  • #2 O 've con un arquitecto y presúmele que tú puedes hacer algo con tus proyectos que él no' :P
  • #3 El índice...
  • #4 Un intento de metáfora para explicar un par de necesidades básicas que resuelven los versionadores... Tres personajes: una arquitecta, un maestro albañil, y un eléctrico. Los 3 trabajando en la industria de la construcción de casas, en esta ocasión en un mismo proyecto...
  • #5 El cliente exigente pide un cambio sobre una parte de la casa que ya estaba terminada. La idea no gusta...
  • #6 El eléctrico hace un cambio por su cuenta y la arquitecta debe modificar los planos...
  • #7 Ésta máquina se parece a la propuesta por RMS sobre máquinas para copiar objetos :P Usando la máquina los cambios que haga la arquitecta sobre el plano (y que meta a la máquina con el botón 'C'), se reflejan en automático en la casa cuando se apriete el botón 'U'.
  • #8 Incluso cambios que se metan a la casa, se reflejan en el plano, y por otro lado si hay cambios sobre una misma parte de la casa y del plano, la máquina marca conflicto, se resuelve y listo! Desafortunadamente, esta máquina no existe...
  • #9 La misma explicación, pero sin metáfora, ahora sí con código fuente... La máquina si existe para los programadores, se llama 'Sistema de Control de Versiones'
  • #10 Caso de un merge de cambios...
  • #11 Caso de un conflicto por resolver...
  • #12 Esquema MUY general del proceso de uso de un versionador
  • #13 Una de tantas aplicaciones de versionadores: control de cambios vía branches
  • #14 Y muchas más! Pero esas son las que me vinieron a la mente, y las que considero más llamativas para el público
  • #15 Con tal de abarcar muchas áreas, ahí hay programadores, diseñadores y hasta electrónicos!
  • #16 Breve explicación de cómo son los centralizados (ésta diapositiva podría omitirse, no se qué tan conveniente sea explicar ésto al público)
  • #17 Igual que la anterior, para versionadores distribuidos... misma nota sobre posible omisión
  • #18 Historia de Git, características generales
  • #19 Explicación en esquema de cómo usar Git en sus diferentes facetas. Diapositiva animada...!
  • #20 Interfaces para usar Git, con línea de comandos...
  • #21 Interfaces gráficas para usar Git, vía web y con IDEs...
  • #22 Aquí iría el ejemplo en vivo de, tal vez, los mismos casos ejemplificados en la historia del principio, pero con un proyecto real...
  • #23 Características de github
  • #24 Algunas razones para usar github
  • #25 Un ejemplo de una cuenta de Github y un proyecto, mostrando el README, código, Url para clonar, commits, comentarios a los mismos
  • #26 Otras razones para usar github, dirigidas a los que les gustan las estadísticas ;)
  • #27 Mostrar cómo se hace un fork y para qué sirve
  • #28 Otras razones para usar github, dirigidas a los que les gusta el renombre XD
  • #29 Un ejemplo de cómo se hizo un fork y pull-request de un proyecto real
  • #30 Muy breves pasos para usar Github, a modo de conclusión
  • #31 GRACIAS!