apuntes:git
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
apuntes:git [2021/02/21 17:12] – [Instalación de git] Santiago Faci | apuntes:git [2021/03/04 15:11] (current) – Santiago Faci | ||
---|---|---|---|
Line 3: | Line 3: | ||
{{ git-github.png? | {{ git-github.png? | ||
- | ===== Introducción a los sistemas de control de versiones ===== | ||
- | Con el objetivo de que durante el curso podáis trabajar con la herramienta //git// utilizando // | + | |
+ | ===== Git y GitHub ===== | ||
==== Instalación de git ==== | ==== Instalación de git ==== | ||
Line 24: | Line 24: | ||
<code bash> | <code bash> | ||
santi@zenbook: | santi@zenbook: | ||
- | santi@zenbook: | + | santi@zenbook: |
</ | </ | ||
Line 36: | Line 36: | ||
. . . | . . . | ||
</ | </ | ||
+ | |||
+ | ==== ¿Qué es GitHub? ==== | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | Actualmente es la plataforma de alojamiento de código fuente más utilizada (alrededor de 20 millones de usuarios la utilizan) y es especialmente conocida en la comunidad de software libre puesto que un gran número de proyectos de licencias alrededor de este tipo de software se alojan en esta plataforma. | ||
+ | |||
+ | Actualmente //GitHub// ofrece alojamiento y funcionalidades gratuitas para repositorios públicos (orientados al uso de proyectos de software libre) pero paganado es posible conseguir repositorios privados. | ||
==== Crear una cuenta en GitHub ==== | ==== Crear una cuenta en GitHub ==== | ||
Line 137: | Line 145: | ||
{{ youtube> | {{ youtube> | ||
\\ | \\ | ||
+ | |||
+ | ==== El fichero README ==== | ||
+ | |||
+ | Es un fichero, que podemos escribir en síntaxis // | ||
+ | |||
+ | * Título del proyecto | ||
+ | * Descripción del proyecto | ||
+ | * Requisitos para la instalación | ||
+ | * Guía rápida de instalación (y si hay más documentación se enlaza aqui, por ejemplo a la Wiki del proyecto) | ||
+ | * Enlace a la web (si la hay) | ||
+ | * Información sobre los autores del proyecto | ||
+ | |||
+ | Hay que tener en cuenta la importancia de este fichero ya que es la primera descripción que un usuario encontrará cuando acceda a nuestro repositorio | ||
+ | |||
+ | ==== El gestor de incidencias ==== | ||
+ | |||
+ | El gestor de incidencias (// | ||
+ | |||
+ | Lo más importante a la hora de registrar una incidencia es asignarle un título y descripción para que sea fácil de encontrar y reproducir por quién tenga que resolverla (incluso aunque sea uno mismo, no siempre se pueden resolver las incidencias en el momento de encontrarlas y más tarde quizás olvidemos algún detalle). Menos importante pero interesante será definir la inmportancia de la //issue// (ayudará a priorizar) y el tipo de incidencia: | ||
+ | * **bug**: Un fallo que se ha localizado en el código | ||
+ | * **enhancement**: | ||
+ | * **proposal**: | ||
+ | * **task**: Una tarea que debe realizarse. No tiene porque ir asociada a ningún problema o bug de código | ||
+ | |||
+ | También podemos adjuntar algún fichero, como por ejemplo capturas que ayuden a detectar o comprender mejor el problema. | ||
+ | |||
+ | Por último, la incidencia puede ser directamente asignada a un usuario (incluso a uno mismo). En caso de que no se sepa quién debe realizarla se puede dejar en blanco esperando que el responsable decida quién la tiene que corregir. | ||
+ | |||
+ | La vista de incidencias tiene filtros automáticos que permiten localizar las incidencias rapidamente por su estado. | ||
+ | |||
+ | Además, el gestor de incidencias de GitHub permite realizar ciertas gestiones sobre las mismas utilizando una serie de comandos que directamente pueden ser aplicados cuando se realizan los //commit// sobre el código con el comando //git//. Una lista de los comandos y opciones disponibles se puede encontrar [[https:// | ||
+ | |||
+ | Por ejemplo, si tenemos una incidencia abierta con el número #13 que hace referencia a un //bug// en cierta parte del código, cuando resolvamos el error y nos dispongamos a hacer el //commit// que soluciona dicho problema, podemos ejecutar ese comando de la siguiente forma: | ||
+ | |||
+ | <code bash> | ||
+ | santi@zenbook: | ||
+ | </ | ||
+ | |||
+ | De esta forma, la incidencia con el número #13 será automáticamente marcada como resuelta sin que tengamos que acceder con el navegador al gestor de incidencias y resolverla manualmente a través de la web. Además, el mensaje del //commit// quedará asociado como mensaje de resolución de dicha incidencia. | ||
+ | |||
+ | ==== La Wiki ==== | ||
+ | |||
+ | Siempe que creemos por primera vez un repositorio en GitHub tendremos la oportunidad de decidir si queremos que se integre una Wiki con él. | ||
+ | |||
+ | A través de la Wiki podremos crear documentación asociada a nuestro proyecto/ | ||
---- | ---- | ||
Line 161: | Line 214: | ||
< | < | ||
</ | </ | ||
+ | |||
+ | {{ youtube> | ||
+ | \\ | ||
Cuando llega el momento de liberar una nueva versión, se crea una nueva rama con el objetivo de comenzar el ciclo de liberación. Ya no es posible incorporar nuevas funcionalidades a esta nueva rama (nueva // | Cuando llega el momento de liberar una nueva versión, se crea una nueva rama con el objetivo de comenzar el ciclo de liberación. Ya no es posible incorporar nuevas funcionalidades a esta nueva rama (nueva // | ||
< | < | ||
- | {{ git-flow.png }} | + | {{ releases.png }} |
< | < | ||
</ | </ | ||
Line 383: | Line 439: | ||
Your branch is up-to-date with ' | Your branch is up-to-date with ' | ||
</ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Ejercicios ===== | ||
+ | |||
+ | {{ ejercicio.png}} | ||
+ | |||
+ | - Crea un repositorio en [[http:// | ||
+ | - Añade un fichero '' | ||
+ | - Añade un fichero con la licencia del proyecto | ||
+ | - Añade un fichero '' | ||
+ | - Descarga el repositorio en tu equipo y comienza a trabajar | ||
+ | - Cuando tengas la primera funcionalidad terminada sube el código al repositorio y validalo | ||
+ | - Sobre el repositorio anterior, imagina ahora que empiezas a trabajar en dicho proyecto y eres el encargado de añadir una nueva funcionalidad (un nuevo método, por ejemplo): | ||
+ | - Descargate el repositorio con la idea de seguir trabajando en él | ||
+ | - Añade la funcionalidad requerida | ||
+ | - Modifica el '' | ||
+ | - Comprueba el estado del repositorio en tu equipo ('' | ||
+ | - Añade los cambios realizados al proyecto | ||
+ | - Sobre el mismo repositorio que los puntos anteriores, imagina que debes de eliminar un fichero que ya no es necesario que forme parte del mismo (si hace falta añade alguno para luego eliminarlo) y tampoco quieres que siga en tu equipo | ||
+ | - Imagina ahora que debes de eliminar un fichero que ya no es necesario que forme parte del mismo (si hace falta añade alguno para luego eliminarlo) pero quieres que siga formando parte del repositorio local en tu equipo | ||
+ | - Añade ahora en la '' | ||
+ | - Registra ahora una nueva incidencia de tipo //mejora// para el repositorio y programa dicha mejora. En el momento de hacer el commit del código que la añade, haz que se marque como corregida. | ||
+ | - Amplia el '' | ||
+ | - Descripción breve del proyecto | ||
+ | - Requisitos para su instalación/ | ||
+ | - Guía rápida de instalación (remite a la Wiki para más información) | ||
+ | - Información sobre los autores | ||
---- | ---- | ||
(c) 2020-2021 Santiago Faci | (c) 2020-2021 Santiago Faci |
apuntes/git.1613927521.txt.gz · Last modified: 2021/02/21 17:12 by Santiago Faci