Introducción a GitHub

¿Qué es GitHub?

GitHub es una plataforma de colaboración donde puedes almacenar cualquier tipo de documento o trabajo. Posee elevados niveles de seguridad y herramientas votadas a la colaboración. Puede crear repository (RP) privadas o públicas compartiendo cada paso de los proyectos.

Una de las características principales de GitHub es que ofrece uno de los más populares softwares open source de control de versiones (Git), así de poder rastrear cada contribución y cada contribuidor para un determinado proyecto así de saber para cada línea de código la autoría de la misma. Esto se hace por medio de pull requests.

GitHub repository

Es un contenedor donde se pueden almacenar todos los archivos relativos a nuestros proyectos. Pueden ser de cualquier extensión y cada cambio de estos archivos será rastreado por medio del control de cambios.

  • El archivo readme.md es un archivo especial que contiene usualmente las informaciones relativas al proyecto, para que es útil, como las personas pueden colaborar al respecto y/o como lo pueden usar.

  • Viene reconocido automáticamente por GitHub que lo colocará debajo de la repository. Si agregamos un archivo de README a la raíz de un repositorio público con el nombre de usuario de usuario aparecerá automáticamente en la página de perfil.

  • Podemos colocar enlaces para que los usuarios puedan navegar en la RP:

[nombre enlace](ruta enlace: docs/CONTRIBUTING.md) 
  • En caso de que utilicemos materiales de otras origines es buena práctica citar las fuentes en este archivo

  • Aquí pondremos también todas las informaciones de contacto de los miembros del grupo que gestiona el proyecto

  • podemos escribirlo en Markdown y/o HTML

A parte del README.md hay otros archivos con características peculiares:

  • CONTRIBUTING.md: es utilizado para describer el proceso para contribuir al proyecto. Un link a este archivo es mostrado cada vez que alguien crea una nueva pull request o una nueva issue.

  • ISSUE_TEMPLATE.md: es un archive que puede ser utilizado para crear una plantilla para cuando las personas abren una nueva issue.

Las issues son sugerencias de mejoras, tareas o preguntas relativas a la RP. Pueden ser creadas por quien sea en caso de que la RP sea publica y son moderadas por los colaboradores de la RP. Cada una contiene su hilo de discusión y podemos ponerle etiquetas para asignarlas a alguien. Podemos finalmente mencionar un usuario para que se entere de la problemática/idea con el @. Vendremos notificados para cada issue o pull request y sus relativas acciones.

Como crear un sitio con GitHub

Los pasos para crear un sitio a partir de los archivos que tenemos en el RP son los siguientes:

  1. Clickamos en Settings

  2. Vamos a la sección de GitHub Pages

  3. De Source escogemos main branch

Ahora nuestro sitio es público en https://nombreusuario.github.io/nombreRP/

GitHub Flow

EL Flow de GitHub se caracteriza para permitir el desarrollo o la corrección del código de manera segura y colaborativa. ¿Cómo funciona?

  1. Se abre una issue relativa a alguna parte del proyecto

  2. Se crea una branch a partir de la rama donde estaba el proyecto principal (todo vive en branch en GitHub)

  3. Se discute la issue en el caso sea oportuno se abre una pull request

  4. Se refine la solución

  5. Se hace un marge con respecto a la rama originaria

Un branch es una copia 1 a 1 del proyecto en un determinado momento del tiempo donde podremos experimentar en seguridad, arreglar algunas problemáticas o añadir archivos. Buena práctica es hacer branch simples y con corta vida. ¿Como crear un branch?

  1. Clickar en el tab Code

  2. Clickar en main

  3. Escribir en el cuadro el nombre que tendrá nuestro branch

Una vez que creamos el branch podemos entrar en ella y crear archivos para luego hacer un commit con relativa descripción corta para añadirlos a nuestro branch. Buena practica es ser puntuales y utilizar la forma activa de los verbos.

Una vez hecho el commit abrimos una pull request para que también otros puedan colaborar a nuestra modificación. Tenemos que añadir una descripción de esta pull request y los colaboradores podrán comentar el código. En verde aparecerá el código que hemos añadido y en rojo el que hemos eliminado con respecto al archivo original.

Una vez que fueron discutidos y aprobados los cambios se efectua el merge y se cancela el branch que se había abierto.

Branch

Pull Request

GitHub Pages

  • Para modificar nuestra pagina tendremos que añadir contenido en un archivo index o en el README.md. Si tenemos un archivo index será utilizado este como homepage.

Jekill Jekyll es un generador de sitios estáticos, simple y con reconocimiento de blogs, perfecto para sitios personales, de proyectos o de organizaciones. Toma su contenido, procesa las plantillas Markdown y Liquid, y genera un sitio web completo y estático listo para servidores como Apache, Nginx u otro servidor web. Jekyll es el motor detrás de las páginas de GitHub.

  • En el archivo _config.yml para almacenar las configuraciones de nuestro sitio, el tema y otros contenidos además de los metadatos para el ranking en las búsquedas en Google. ✏️

  • Para crear un nuevo post en nuestro sitio podemos generar un nuevo archivo con el siguiente nombre _posts/YYYY-MM-DD-title.md . Si no somos los dueños del sitio tendremos que pasar por el proceso de crear un nuevo branch, hace el commit de la modifica y generar la relativa pull request.

  • La sintaxis que utiliza JAKILL es de tipo YAML, por ejemplo, para añadir título y fecha a nuestro blog tendremos que escribir lo siguiente: — title: «Welcome to my blog»date: 2019-01-20 —

  • Entre los tres guiones medios podremos inserir algunas variables predefinidas que verán procesadas para Jekill. Para mayores informaciones

Podemos encontrar más informaciones sobre las paginas que se pueden crear en GitHub aquí

Material Extra

Notificaciones

Bibliografía

GitHub Learning Lab