Guía para Principiantes sobre GitHub

M.T.

Aprendiz Lvl 4
¿Qué es GitHub? Una Guía para Principiantes sobre GitHub

En un nivel más alto, GitHub es un sitio web y un servicio en la nube que ayuda a los desarrolladores a almacenar y administrar su código, al igual que llevar un registro y control de cualquier cambio sobre este código. Para entender exactamente qué es GitHub, primero usted necesita conocer los dos principios que lo conectan:

  • Control de versión
  • Git

En este artículo, explicamos estos dos principios. Luego, nos profundizaremos más sobre GitHub

¿Qué Es una Versión de Control?

Una Versión de Control ayuda a los desarrolladores llevar un registro y administrar cualquier cambio en el código del proyecto de software. A medida que crece este proyecto, la versión de control se vuelve esencial. Tomemos WordPress por ejemplo…

En este punto, WordPress es un gran proyecto. Si un desarrollador importante deseara trabajar en una parte en específico de la base de datos del código de WordPress, no sería seguro o eficiente permitir que pueda editar directamente sobre el código fuente “oficial”

Por esto, la versión de control permite a los desarrollador trabajar de forma segura a través de una bifurcación y una fusión.

Con la bifurcación, un desarrollador duplica parte del código fuente (llamado repositorio). Este desarrollador, luego puede, de forma segura, hacer cambios a esa parte del código, sin afectar al resto del proyecto.

Luego, una vez que el desarrollador logre que su parte del código funcione de forma apropiada, esta persona podría fusionar este código al código fuente principal para hacerlo oficial.

Todos estos cambios luego son registrados y pueden ser revertidos si es necesario.


¿Qué Es Git?

Git es un sistema de control específico de versión de fuente abierta creada por Linus Torvalds en el 2005.

Específicamente, Git es un sistema de control de versión distribuida, lo que quiere decir que la base del código entero y su historial se encuentran disponibles en la computadora de todo desarrollador, lo cual permite un fácil acceso a las bifurcaciones y fusiones.

Según la encuesta entre los desarrolladores de Stack Overflow, más del 87% de los desarrolladores usan Git.


Entonces, ¿Qué Es GitHub?

GitHub es una compañía sin fines de lucro que ofrece un servicio de hosting de repositorios almacenados en la nube. Esencialmente, hace que sea más fácil para individuos y equipos usar Git como la versión de control y colaboración.

Como compañía, GitHub hace dinero vendiendo alojamiento para repositorios de código privado, al igual que otros planes enfocados para negocios, que hace más fácil que las organizaciones administren a los miembros de su equipo y su seguridad.

Ya que tocamos este tema de Público/Privado... aclaremos algo.

Recordar: Al ser "Open source" nuestro código podrá ser visto y utilizado por todos... al menos que paguemos para tener la opcion de "Privado".



Información Extra: Al ser un sistema de control de versiones, si tenemos la versión 10 por ejemplo y la versión 5 tenía menos problemas podemos volver a utilizar dicha versión aunque haya quedado muy antigua en el tiempo, nunca perdemos rastro de nuestros cambios.
También podemos trabajar con Git de forma local, es decir gestionar nuestros cambios en nuestra misma PC sin necesidad de subirlo a GitHub... si queremos trabajarlo de forma remota o con varias personas debemos subirlo a GitHub.



Empecemos a usar Github.

Antes que nada debemos entrar a Git y descargarnos (Git) para poder usar "BASH" que sería la consola de comandos para gestionar nuestro GITHUB.

Le damos todo "next" excepto en esta parte.
96CuYCo.png

donde elegimos la opción de "Use Git and optional Unix tools the Windows Command Prompt". Esta interface es muy parecida a la de Linux por lo cual debemos saber movernos entre carpetas, Ejemplo: pwd: Nos dice donde estamos situados. ls: nos dice las carpetas que hay en el lugar donde estamos situados, cd nombre: nos mueve a donde le pedimos. Por favor antes que nada, ver un poco esto por separado de la publicación esta, es algo básico igualmente, son esos 3 comandos.

Luego nos hacemos cuenta en (GitHub) para poder subir nuestros proyectos y gestionarlos.



Tenemos 3 estados en Git...
(working directory) Donde vamos a estar trabajando con todos nuestros archivos.
(staging area) Donde vamos estar agregando todos los archivos que vamos estar preparando para el guardado, es decir el update/actualizado de la carpeta raíz (Master).
(repository) Una vez que el staging area esta listo para ser subido, quedará aquí en el "Repository" ya actualizado para todos los desarrolladores y personas.


[Comandos Básicos]

git clone url -> Te hace una copia desde el servidor central donde esta el código a tu (Ordenador / PC).

git init -> Indicamos que en dicha carpeta vamos a empezar a utilizar Git.

git add <file> -> Es para poder pasar los archivos del "working directory" al "staging area".
Tenemos 2 opciones de hacerlo.
Opción 1) git add <file> es decir eligiendo archivo por archivo. Ejemplo: usando index.html -> "git add index.html" sin comillas.
Opción 2) Si estamos seguro que todos los archivos que tocamos estan bien, en vez de subir uno por uno, podemos subir todos a la vez usando: "git add ." sin comillas.

git status -> Es para ver en que estado estan los archivos, si estan en el "working directory", si estan en el "staging area", etc.

git commit -> Es para pasarlos desde el "staging area" al "repository". Es para crear un primer "snapshot" / primera foto de la versión del código. Es decir se va a crear un nuevo ID con el cambio que hicimos para tener todos los cambios al día.
Tenemos 2 opciones de usar "git commit".
Opción 1) Usando "git commit" nos abrirá en esa misma consola una distinta para que podamos escribir el texto con los cambio de lo que hicimos. Deberemos tocar la "i" para poder empezar a escribir y una vez escrito los cambio de nuestro "commit" o "nueva versión" por así decirlo, tendremos que tocar "esc" y escribir ":wq" sin comillas, sería de (write, quit).
Opción 2) Más recomendable a mi gusto, es escribiendo: git commit -m "Información sobre el cambio que hiciste." -> Va con las comillas el texto.
RECORDAR: Si trabajamos de forma local y queremos tener un lugar de partida de 0... sin errores, etc. Debemos crear un "commit" antes de empezar así haría el primer "snapshot" y podremos volver al inicio en caso de algún error.

git push -> Es para subirlo a un repositorio remoto. Ej: Ya trabajamos nuestra parte del código, nuestra nueva implementación / solución de bug, lo que sea. Y queremos subirlo al archivo Master (Principal) para dejar asentado nuestro nuevo cambio y que este actualizado con nuestro ultimo avance.

Una vez que haya hecho algunos cambios, usted puede enviar ese código de nuevo a la bifurcación, con tan solo hacer una solicitud de pull. Una solicitud de pull es básicamente pedirle a la persona a cargo de la bifurcación que incluya su código. Y este también ayuda a que esta persona pueda ver exactamente qué fue lo que cambió en el código.

git pull -> En caso estes trabajando con multiple desarrolladores, te traes los cambios que hayan hecho los otros desarrolladores.

git diff <file> -> Para ver las diferencias hechas en los archivos. Podremos ver los cambios realizado antes de pasarlo al "staging area".

git branch -> Muestra los distintos proyectos / ramas. El principal siempre va a ser "master", pero podemos tener uno alternativo con ciertos cambios, ejemplo un proyecto con pocos gráficos para hacer testeos rápidos de nuestro juego.
git branch y el nombre que queremos para nuestra alternativa. Ej: "git branch login" sin comillas. Ahora para entrar a dicha nueva rama hacemos.
git checkout login -> accedemos al mismo repositorio que teniamos como "master" pero ahora llamado "login" algo curioso y interesante es que son 2 ramas/proyectos distintos, por ende no se compatirán los archivos el uno con el otro, solo se copio el master porque lo usamos de base, pero apartir de ahí todo lo demás se cargarán como un proyecto distinto.

git log -> Ver el historial de commits de un proyecto.
+Información: A veces necesitamos examinar la secuencia de commits (confirmaciones) que hemos realizado en la historia de un proyecto, para saber dónde estamos y qué estados hemos tenido a lo largo de la vida del repositorio. Esto lo conseguimos con el comando de Git "log".

El listado de commits está invertido, es decir, los últimos realizados aparecen primeros.

De un commit podemos ver diversas informaciones básicas como:
  • Identificador del commit
  • Autor
  • Fecha de realización
  • Mensaje enviado
Podría ser algo como esto:
commit cd4bcc7bad230f795fcadd5baf258715466a8eaf
Author: M.T. <[email protected]>
Date: Fri Feb 10 18:38:41 2019 -0200

ultimo ejemplo para el foro

Log en una línea por commit

Es muy útil lanzar el log en una sola línea, lo que permite que veamos más cantidad de commits en la pantalla y facilita mucho seguir la secuencia, en vez de tener que ver un montón de páginas de commits.

Para ello usamos el mismo comando, pero con la opción "--oneline":
git log --oneline

Solo aparecerá los mensajes de los commits. Será algo como esto.
4093.png


Ver un número limitado de commits

Si tu proyecto ya tiene muchos commits, decenas o cientos de ellos, quizás no quieras mostrarlos todos, ya que generalmente no querrás ver cosas tan antiguas como el origen del repositorio. Para ver un número de logs determinado introducimos ese número como opción, con el signo "-" delante (-1, -8, -12...).

Por ejemplo, esto muestra los últimos tres commits:
git log -3


------------------------------------------------------------

Si iniciamos nuestro "git init" en un proyecto y tenemos archivos o cosas que queremos que ignore, es decir no queremos estar actualizandolo al "staging area" porque no nos interesa subirlo o mantenerlo actualizado... creamos un archivo ".gitignore" sin comillas y dentro escribimos el nombre de las carpetas o nombre de los archivos que queremos que ignore, con un salto de linea entre cada petición.



Más información:


La idea es que todos podamos aprender, si creen que algo esta mal redactado, falto alguna información o algo es muy largo y puede quedar poco entendible para todos, me avisan y lo edito sin problemas.
 
Última edición:
Arriba