0
Administra tu Código con Git y Github Javier Novoa C.
Administra tu Código con Git y Github Control de versiones Git <ul><li>Breve reseña histórica
Cómo funciona
Ejemplo </li></ul>Github <ul><li>Importancia para el código abierto
Ejemplos </li></ul>
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 <ul>Ventajas: </ul><ul><li>Historial de todos los cambios, con sus autores </li></ul><ul><li>Organiza...
el manejo de branches y el control de cambios
son GRANDES ventajas </li></ul>
Control de Versiones <ul>¿Cuando se puede usar control de versiones? </ul>Siempre que se manejen archivos de texto plano.....
en este formato (p.ej. SVG de dibujo vectorial) </li></ul><ul><li>EDIF – esquemas de circuitos </li></ul><ul><li>ETC.!!! <...
Versionadores Centralizados
Versionadores Distribuidos
Git <ul><li>Creado por Linus Torvalds </li></ul><ul><li>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??) </li></ul><ul><li>VCS Distrib...
git commit git status git diff git log git tag v 0.1 git checkout master Branch HEAD commit a020c... commit 5cb02... commi...
http://book.git-scm.com/ Interfaces para usar Git: Línea de comandos (y siempre es bueno conocerla antes que nada) Linux W...
Interfaces para usar Git: GUIs: [m=manipula; p=manipula parcialmente; v=visualiza] Linux Windows Mac git-gui [m] gitk [v] ...
Un Ejemplo...
Github <ul><li>Un sitio web para
administrar versiones
Upcoming SlideShare
Loading in...5
×

Administra tu código con Git y Github

2,267

Published on

Administrar las versiones del código fuente de tus programas puede facilitarles la vida no sólo a ti, sino a tu equipo, y a toda la gente que se involucre con él a lo largo del tiempo. Los versionadores son herramientas muy útiles hoy en día para proyectos de software de todos los tipos, en particular los proyectos de software libre se ven muy beneficiados con estas herramientas. Git es una de ellas, y el sitio Github una forma muy popular de usarla.

Recomendable descargarla por las animaciones de las diapositivas, que se aprecian mejor a verlas estáticas.

Codigo fuente del ejemplo: https://github.com/jstitch/helloworld

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,267
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
59
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • O &apos;ve con un arquitecto y presúmele que tú puedes hacer algo con tus proyectos que él no&apos; :P
  • El índice...
  • 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...
  • El cliente exigente pide un cambio sobre una parte de la casa que ya estaba terminada. La idea no gusta...
  • El eléctrico hace un cambio por su cuenta y la arquitecta debe modificar los planos...
  • É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 &apos;C&apos;), se reflejan en automático en la casa cuando se apriete el botón &apos;U&apos;.
  • 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...
  • La misma explicación, pero sin metáfora, ahora sí con código fuente... La máquina si existe para los programadores, se llama &apos;Sistema de Control de Versiones&apos;
  • Caso de un merge de cambios...
  • Caso de un conflicto por resolver...
  • Esquema MUY general del proceso de uso de un versionador
  • Una de tantas aplicaciones de versionadores: control de cambios vía branches
  • 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
  • Con tal de abarcar muchas áreas, ahí hay programadores, diseñadores y hasta electrónicos!
  • 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)
  • Igual que la anterior, para versionadores distribuidos... misma nota sobre posible omisión
  • Historia de Git, características generales
  • Explicación en esquema de cómo usar Git en sus diferentes facetas. Diapositiva animada...!
  • Interfaces para usar Git, con línea de comandos...
  • Interfaces gráficas para usar Git, vía web y con IDEs...
  • Aquí iría el ejemplo en vivo de, tal vez, los mismos casos ejemplificados en la historia del principio, pero con un proyecto real...
  • Características de github
  • Algunas razones para usar github
  • Un ejemplo de una cuenta de Github y un proyecto, mostrando el README, código, Url para clonar, commits, comentarios a los mismos
  • Otras razones para usar github, dirigidas a los que les gustan las estadísticas ;)
  • Mostrar cómo se hace un fork y para qué sirve
  • Otras razones para usar github, dirigidas a los que les gusta el renombre XD
  • Un ejemplo de cómo se hizo un fork y pull-request de un proyecto real
  • Muy breves pasos para usar Github, a modo de conclusión
  • GRACIAS!
  • Transcript of "Administra tu código con Git y Github"

    1. 1. Administra tu Código con Git y Github Javier Novoa C.
    2. 2. Administra tu Código con Git y Github Control de versiones Git <ul><li>Breve reseña histórica
    3. 3. Cómo funciona
    4. 4. Ejemplo </li></ul>Github <ul><li>Importancia para el código abierto
    5. 5. Ejemplos </li></ul>
    6. 6. Primero, una historia...
    7. 7. Primero, una historia... i
    8. 8. Primero, una historia... i
    9. 9. Y, ¿si existiera una máquina que...? i
    10. 10. 'Versionando' en la construcción... i
    11. 11. Control de Versiones Repositorio de Código Clone (o checkout) Working Copy Update
    12. 12. Control de Versiones Repositorio de Código Working Copy Update Commit Merge
    13. 13. Control de Versiones Repositorio de Código Conflicto
    14. 14. Control de Versiones
    15. 15. Manejo de Branches
    16. 16. Control de Versiones <ul>Ventajas: </ul><ul><li>Historial de todos los cambios, con sus autores </li></ul><ul><li>Organización del trabajo de un equipo </li></ul><ul><li>Los branches ayudan al control de cambios </li></ul><ul><li>Incluso en proyectos en solitario, el historial,
    17. 17. el manejo de branches y el control de cambios
    18. 18. son GRANDES ventajas </li></ul>
    19. 19. Control de Versiones <ul>¿Cuando se puede usar control de versiones? </ul>Siempre que se manejen archivos de texto plano... <ul><li>Código fuente – programadores </li></ul><ul><li>HTML y CSS – diseñadores web </li></ul><ul><li>XML – innumerables formatos que almacenan
    20. 20. en este formato (p.ej. SVG de dibujo vectorial) </li></ul><ul><li>EDIF – esquemas de circuitos </li></ul><ul><li>ETC.!!! </li></ul>¿Y para archivos binarios?
    21. 21. Versionadores Centralizados
    22. 22. Versionadores Distribuidos
    23. 23. Git <ul><li>Creado por Linus Torvalds </li></ul><ul><li>Usado para el kernel de Linux luego de que se
    24. 24. abandonó BitKeeper ya que éste dejó de permitir el uso gratuito (¿¿lección sobre sw libre??) </li></ul><ul><li>VCS Distribuido </li></ul><ul><li>Alto desempeño </li></ul>http://git-scm.com/
    25. 25. 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
    26. 26. 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/
    27. 27. 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]
    28. 28. Un Ejemplo...
    29. 29. Github <ul><li>Un sitio web para
    30. 30. administrar versiones
    31. 31. con git </li></ul><ul><li>Una 'forja' de
    32. 32. software </li></ul><ul><li>Una 'red social' de
    33. 33. programadores </li></ul><ul><li>Es público y gratuito
    34. 34. (se pueden contratar
    35. 35. repositorios privados) </li></ul>https://github.com/
    36. 36. Forza a los proyectos a tener un README = carta de presentación para los proyectos Orientado al desarrollador = identificas todo lo que éste ha hecho, un plus al ego ;) Permite seguimiento sencillo de proyectos y de cada detalle de los mismos Incluso se está convertiendo en el nuevo Curriculum de los desarrolladores!!! github SOCIAL CODING
    37. 37. Ejemplo... github SOCIAL CODING
    38. 38. Es el sitio de hosteo de software más popular en cantidad de proyectos, tanto en originales como en forks de otros proyectos. Y 3er lugar en número de usuarios http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities github SOCIAL CODING
    39. 39. ¿Qué es un fork? github SOCIAL CODING
    40. 40. ¿Qué proyectos lo usan? p. ej.: github SOCIAL CODING Ruby on Rails
    41. 41. Un Pull Request... github SOCIAL CODING
    42. 42. ¡Crea tu cuenta! Crea un proyecto (y sube tu código con git remote y git push) o haz FORK a un proyecto existente (y baja el código con git clone y git pull) Y haz cambios, luego solicita un pull-request ¡¡¡ COMPARTE !!! github SOCIAL CODING
    43. 43. <ul>(o 'Presume a un arquitecto lo que tú si puedes hacer y él no' ;) ¡¡¡ MUCHAS GRACIAS !!! Javier Novoa Cataño @JaviStitch https://github.com/jstitch http://invernalia.homelinux.net/jstitch ¿Preguntas? </ul>Administra tu Código con Git y Github
    1. A particular slide catching your eye?

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

    ×