Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
Esta es una breve introducción a git y gitHub. En ella se tratan muchos temas de manera conceptual y no detallada, y se omiten algunos temas importantes; pero es más que suficiente para empezar a trabajar con git y a partir de aquí ampliar esta introducción.
La razón de utilizar eclipse para la presentación, es que sea más fácil de entender los conceptos de git, para dejar la base para después empezar a trabajar con git en consola.
Aquí está un manual un poco más detallado, que permitirá empezar a trabajar con git, utilizando GitHub como servidor git: http://es.slideshare.net/MiguelAscanioGmez/manual-y-git-github
Guía de Referencia de Git, Herramientas y Clientes Windows, ideal para programadores que quieran inicarse en el control de sus proyectos bajo control de versiones distribuidos
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
Git es un sistema de control de versiones distribuido. Jenkins es un sistema de integración contínua.
Esta presentación es el material de un seminario de impartido por Juan José Fidalgo de @paradigmate el 17 de mayo del 2012 en Escuela Politécnica Superior de la Universidad CEU San Pablo en Madrid.
La aplicación práctica de la presentación se sigue mejor con un cliente por línea de comandos, por ejemplo con el plugin eGit en el entorno de desarrollo Eclipse.
Más información en http://www.paradigmatecnologico.com/git-y-jenkins-el-futuro-en-la-gestion-del-ciclo-de-vida-de-aplicaciones/ y http://www.javahispano.org/portada/2012/4/25/seminario-gratuito-sobre-git-y-jenkins.html
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
Este taller está diseñado para entrenar a aquellos interesados en publicar código de aplicaciones así como sitios web estáticos, tengan o no conocimientos previos de Git. Es una sesión presencial donde se presentarán conceptos alrededor del Control de Versiones aplicados al desarrollo web. Al finalizar los estudiantes estarán en capacidad de publicar proyectos web en Github.
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
En muchos tutoriales de git se ignoran cuestiones importantes. Por ejemplo, la configuración de claves e identidad del usuario son cosas cruciales para una buena experiencia con git.
En esta presentación se explica el proceso desde cero, orientado tanto a quienes quieren usarlo desde consola, como a desarrolladores que deseen emplearlo desde Eclipse.
Los ejemplos tratan de emular un proceso de desarrollo real basado en ramas, con conflictos entre diferentes desarrolladores.
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
Git es un sistema de control de versiones distribuido. Jenkins es un sistema de integración contínua.
Esta presentación es el material de un seminario de impartido por Juan José Fidalgo de @paradigmate el 17 de mayo del 2012 en Escuela Politécnica Superior de la Universidad CEU San Pablo en Madrid.
La aplicación práctica de la presentación se sigue mejor con un cliente por línea de comandos, por ejemplo con el plugin eGit en el entorno de desarrollo Eclipse.
Más información en http://www.paradigmatecnologico.com/git-y-jenkins-el-futuro-en-la-gestion-del-ciclo-de-vida-de-aplicaciones/ y http://www.javahispano.org/portada/2012/4/25/seminario-gratuito-sobre-git-y-jenkins.html
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
Este taller está diseñado para entrenar a aquellos interesados en publicar código de aplicaciones así como sitios web estáticos, tengan o no conocimientos previos de Git. Es una sesión presencial donde se presentarán conceptos alrededor del Control de Versiones aplicados al desarrollo web. Al finalizar los estudiantes estarán en capacidad de publicar proyectos web en Github.
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
Sistema que permite registrar los cambios en un archivo o conjunto de archivos con el tiempo para poder verificar versiones especificas mas adelante. Para diseñadores web o programadores en general es una de las herramientas mas considerables a utilizar.
Presentación introductoria sobre GIT como sistema distribuido de control de versiones. Introducción y vistazo rápido a comandos para iniciar con GIT en Ubuntu. Presentación a cargo de Simón Sánchez
Introducción al desarrollo de software en comunidad con forja de software y gitDrPantera
Presentación "Introducción al desarrollo de software en comunidad con forja de software y git" impartida por Manuel Palomo y Pablo García en la Escuela Superior de Ingeniería de la Universidad de Cádiz a petición de la Game Development Association of the University of Cádiz
Taller Git que impartimos Francisco Gortázar (@fgortazar) y Micael Gallego (@micael_gallego) en la Escuela Técnica Superior de Ingeniería Informática de la URJC.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
2. ¿QUÉ ES GIT?
Lo primero que nos preguntamos es qué es exactamente Git.
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 diferentes
de un mismo archivo y compararlas, restaurarlas y, a veces, mezclarlas.
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 una
evolución de RCS), pero al intentar ser una evolución, era un simple “parche” de su padre.
6. Garantiza la integridad de los datos
Git utiliza hashes SHA1 y en ocasiones criptografía para garantizar que todo el mundo tiene
los 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 y
empresas sí lo tiene.
7. Sin repositorio central
Frente a SCM antiguos Git no necesita de un repositorio central o canónico, aunque tampoco
impide designar uno de los clones del repositorio como canónico. Esto permite una
flexibilidad imposible con otros sistemas, y muchas ventajas.
8. Cada usuario tiene un backup
completo del repositorio
Los repositorios de cada usuario son un clon completo, y no una copia parcial de la última
versión. En el caso de fallo catastrófico de un supuesto repositorio central, no es necesario
más que clonar un repositorio de uno de los usuarios.
9. Se puede trabajar offline
El disponer de un repositorio completo, un usuario puede realizar todas las operaciones que
desee con su copia local, y sincronizarla con otras copias cuando vuelva a estar conectado.
10. ¡Es rápido!
Al realizar todas las operaciones en local, no es necesario esperar al servidor para ver un log
de cambios, comparar con una versión anterior y otras operaciones.
12. Si habéis instalado Xcode 4 ya disponéis de un Git suficiente moderno para utilizar, y no hay
que hacer mucho más.
Personalmente el soporte de Xcode 4 me parece de broma. La vista de comparar versiones es
la única que posiblemente se salva, y no es tan buena. Ni siquiera es capaz de manejar muy
bien conflictos en el archivo de proyecto, lo que hace que el 50% de la veces casque.
13. GITX (L)
http://gitx.laullon.com
Mi recomendación es utilizar la Terminal y GitX. GitX es un cliente gráfico para Git, muy bien
enfocado 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ó la
de brotherbard, y la que utilizo últimamente es la de Laullón.
14. Esta es la vista de para hacer commits. Cuando trabajo con Xcode siempre mantengo una
terminal en el directorio por si necesito teclear algún comando y GitX con el proyecto abierto.
15. INSTALACIÓN
http://git-scm.com
Si queréis una versión más moderna podeis instalar Git desde el código fuente o un sistema
de paquetes como Homebrew.
16. $ git config --global user.name "Juan Pérez"
$ git config --global user.email juan.perez@example.com
Algo que no he encontrado como hacer en Xcode. Esto toca hacerlo en el Terminal. Sólo es
necesario hacerlo una vez.
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 Git
invocará cuando necesite que editeis algún mensaje de commit o similares…
18. $ git config --global merge.tool opendiff
Y la herramienta que utilizará para mostrar las mezclas conflictivas (opendiff es una
herramienta gráfica que se instala con Xcode)
19. $ git config --global color.ui auto
Y finalmente para darle un toque de color a esa triste terminal.
20. UN WORKFLOW
Hay muchos posibles workflows con Git. Cada uno adecuando a un modo de desarrollar y a
un tipo de equipo. El kernel de Linux no utiliza repositorio centrales y forma una especie de
pirámide de responsables y utiliza “pull requests” mediante el correo electrónico. En
empresas lo normal es un repositorio central. Y hay muchas más. Git te da la libertad de
diseñar tu propio workflow.
21. GIT INIT
$ mkdir PajaritosCabreados; cd PajaritosCabreados
$ git init
Initialized empty Git repository in /Users/daniel/
PajaritosCabreados/.git/
$
Desde la terminal crear un repositorio es tan sencillo como crear un directorio y ejecutar “git
init” dentro de él. Git creará un directorio oculto dónde almacenará toda la información que él
necesite.
22. Desde Xcode, cuando se crea un nuevo proyecto y vamos a elegir un directorio para
almacenarlo se puede elegir crear un repositorio para el proyecto. A menos de que tengáis
una razón muy buena, todos los nuevos proyectos deberían estar bajo control de versiones,
aunque simplemente sea local.
23. Vamos a crear nuestro primer archivo, en el que incluiremos algún contenido.
24. GIT STATUS
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be
committed)
#
# main.m
nothing added to commit but untracked files present
(use "git add" to track)
$
Desde la terminal, en cualquier momento podemos ejecutar “git status” para comprobar en
que estado están nuestros archivos. Git incluye mucha información en él: la rama en la que
estamos, 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 un
archivo main.m del que no sabe nada.
25. GIT ADD
$ git add main.m
$
La primera orden a aprender es “git add”. Git no incluye ningún contenido al repositorio al
que no hayamos hecho un “git add”. La forma más normal es “git add nombre.archivo”, que
añade todos los cambios del archivo al “staging area” de Git.
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. Pero me he dado cuenta de que me faltaba una pequeña cosa, así que voy a editar de nuevo
el archivo y añadir una línea más.
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 be
committed)
# (use "git checkout -- <file>..." to discard changes
in working directory)
#
# modified: main.m
#
$
En este momento si ejecutamos “git status” veremos algo curioso: un archivo está en dos
estados para Git: nuevo y modificado. Esta es una de las principales diferencias de Git, y una
de sus mejores características. Git no sigue a los archivos, sino a los contenidos; y el archivo
main.m tiene un contenido que hemos añadido al “staging area”, pero otro contenido (la línea
de la anterior diapositiva) que no, así que considera que el archivo está modificado. Podemos
añadir esa línea haciendo otro “git add”.
29. GIT COMMIT
$ git commit
Finalmente, para crear una nueva revisión se ejecutará “git commit”, que toma todos los
cambios del “staging area” y crea una revisión con ellos. Ningún cambio en el directorio de
trabajo que no esté en el “staging area” se incluirá en la revisión.
30. Git nos abrirá nuestro editor de texto dónde podremos escribir una pequeña descripción del
cambio realizado y sus motivos.
32. …RINSE AND REPEAT
Ya solo queda repetir el proceso de modificar los archivos, añadir los cambios al “staging
area” y crear las nuevas revisiones.
33. ¡AYUDA!
Git es muy amplio, esto es el proceso más sencillo y habitual, pero falta mucho por explicar
como los remotos, las ramas y muchas otras cosas.
Si necesitáis ayuda tenéis varios recursos a vuestra disposición.
34. $ git help <orden>
$ git <orden> --help
El primero es la ayuda en línea de Git. Con “git help” o “git --help” se pueden leer las páginas
de manual de Git. Las páginas de los mandatos básicos están muy bien redactadas e incluyen
ejemplos en la parte final.
35. DOCUMENTACIÓN
http://git-scm.com/documentation
Si preferís Internet el sitio de Git incluye mucha documentación y enlaces a tutoriales propios
y externos.
36. PRO GIT
http://progit.org
Finalmente existe Pro Git, un libro gratuito que trata Git desde novato a experto. Existe una
versión en ePub muy bien preparada para el iPad.