Intro Git and github 💻
Tags: github, git, beginners, spanish
Published: 2021-07-13 21:23:45


```
¿Qué es git y github?
```
Git es un sistema de control de versiones distribuido que utilizan los desarrolladores de software que contribuyen a un mismo proyecto o software. Básicamente ayuda a los usuarios a rastrear los diferentes cambios realizados en el software por diferentes usuarios.

Github es una plataforma que proporciona alojamiento y control de versiones para su código y cualquiera puede colaborar en cualquier proyecto en todo el mundo.


```
Cómo empezar a usar Github
```
Lo primero que tenemos que hacer es configurar el entorno, por lo que necesitamos descargar git. Para cualquier sistema operativo podemos descargarlo [aqui](https://git-scm.com/downloads)	

![git page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqnvytq6vfbix6deqju0.jpg)

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/havt639p809xjbjm3stl.png)

Una vez que hayamos instalado correctamente git, podemos abrir la terminal y escribir el siguiente comando para comprobarlo. 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gvkq012xbwb8sox1eex7.png)

Después de esto podemos ir al sitio web de [Github](https://github.com/) y crear una cuenta si no tenemos. 

La cuenta se verá similar a algo como esto:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bcffjwn9scljpdorh56n.png)
_________________________________________________________________


```
Configurar git con nombre de usuario y correo electrónico.
```
Ahora que tenemos Git en el sistema, queremos  personalizar el entorno de Git. Sólo es necesario hacer estas cosas una vez; se mantendrán entre actualizaciones. También podemos cambiarlas en cualquier momento volviendo a ejecutar los comandos correspondientes.

Lo primero que debemos hacer cuando instalamos Git es establecer nuestro nombre de usuario y dirección de correo electrónico. Esto es importante porque las confirmaciones de cambios (commits) en Git usan esta información, y es introducida en cada commit que hagamos:

**Abrir un terminal/shell:**

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cyjizx8o4krngxbwxtoe.png)

Si queremos comprobar la configuración, podemos usar el comando git config --list para listar todas las propiedades que Git ha configurado:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jfaq7ovl7yrqq1fm5vej.png)

**Listo! Ya tenes github configurado!**

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftdh9khwp7h2d4e1kgil.jpeg)

_________________________________________________________________

Hay ciertos pasos que debemos seguir para empezar a contribuir en tu trabajo, proyectos propios u Open Source:

1. Creación de un repositorio.
2. Fork de un repositorio.
3. Clone de un repositorio.
4. Creando commits.
5. Push código.
6. Creando una rama(branch).
7. Creando issues.
8. Crear un pull request.
9. Actualizando el contenido del repo.

```
Creación de un repositorio.
```
Un repositorio es una carpeta única que contiene los archivos necesarios para el proyecto, podemos decir que es un nombre alternativo para directorio. Para crear un repositorio podemos ver la esquina superior derecha de tu ventana donde tenemos una opción para crear repositorio como se muestra en la imagen de abajo:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qgzfhruwsbku22ppy3uz.png)

Una vez que hayamos hecho click, tendremos que ingresar información sobre el repositorio, como su nombre, si queremos incluir el archivo Readme (archivo de nuestro repositorio en donde podríamos contarle a la comunidad de GitHub de que trata nuestro proyecto.), o incluir algún archivo, etc.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f0g2n74rb1h73ke06rye.png)

**Otra forma de hacerlo es con Git Init**

Este comando se usa para crear un nuevo repositorio en Git. Nos crea un repositorio de manera local y lo hará en la carpeta donde estamos posicionados o se le puede pasar [nombre_de_la_carpeta] y creará la carpeta con ese nombre.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/73mclcl53gj8dbtazyuo.png)

```
Fork de un repositorio.
```
Un fork es un clon del repo en github y que funciona como un branch del original y es la forma principal por la cual alguien puede proponer cambios a un repositorio que no creo.

Si queremos contribuir en algún proyecto de otra persona, el primer paso es hacer un fork del proyecto para crear una copia de los archivos de ese proyecto en nuestra cuenta de github. 


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a5sk7tf6pfs94sjg9sk6.png)

```
Clone de un repositorio.
```
Para poder trabajar y modificar un proyecto, el primer paso es descargar los archivos en su PC para ejecutarlos. Este proceso se conoce como **clonación de un repo**. Debemos abrir la terminal, posicionarnos en la carpeta donde queremos descargar los archivos (Ej: desktop) y ejecutar el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ouj54mxj8p9epm2w43lq.png)

Hecho esto, tendremos una copia del proyecto en nuestra PC.

```
Creando commits.
```

El comando "commit" guardará todos los cambio hechos en la zona de montaje o área de preparación (staging area), junto con una breve descripción del usuario, en un "commit" al repositorio local.

Para agregar el o los archivos al Staging Area vamos a usar el comando add:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n77ex0aak5n87hv8mm4z.png)

Ahora en verde nos indica que tenemos un archivo o mas listos para hacer un commit en nuestro repositorio, hasta que no hagamos un commit nuestros archivos permanecerán en “el limbo” en el estado Ready justo antes de enviar nuestro archivo a nuestros repositorio.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7zhm0e5jb7vqst9pzey7.png)

```
Push código.
```
Nuestro repositorio local ya tiene nuestros cambios, ahora si queremos enviarlos a nuestro repositorio remoto (ya sea un fork, clone o propio), vamos a usar un comando llamado git push, vamos a empujar nuevos cambios. Podemos hacerlo con el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y71rj6y5rume3eiuqrxq.png)

```
Creando una rama(branch).
```
Como sabemos, cada vez que desarrollamos cualquier software o proyecto, a menudo creamos nuevas features o corregimos un error(**fix**), por lo que utilizamos ramas para ello. 
Las ramas son caminos que puede tomar cualquier desarrollador dentro del proyecto, que agrupan commits y que pueden volver a unirse al camino principal de la aplicación. 
Es básicamente una manera de mantener la diferencia en el código original con respecto a la nueva features o fix. 

Para comprobar la rama existente en el proyecto podemos escribir el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ldolb0lyep46viotiuq3.png)

Para crear una nueva rama podemos ejecutar el siguiente comando en el terminal: 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2yg6ps6710sgrsknzl6.png)

Para comprobar o cambiar la rama actual puede utilizar el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4w3y4voiehohx910dsd.png)

*Es una buena práctica crear una nueva rama para cada issue creado.*
_______________________________________________________________

```
Creando issues.
```

En la solapa "Issues” los diferentes colaboradores del proyecto pueden remarcar y alertar acerca de diferentes “bugs” o “problemas” dentro del proyecto.
Si queremos trabajar en alguna issue podemos comentar en ese mismo que estamos interesados en trabajar. El administrador del proyecto o los maintainers nos asignarán el issue, y entonces podremos empezar a trabajar en él.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uyme14q83hmuhmrofffu.png)

En el caso del Open Source, suele haber una guia para contribuidores que explica el formato preferido de Issues, pull request y commits. 

```
Crear un pull request.
```
Para que los colaboradores revisen los cambios que hemos hecho y los aprueben en el repositorio original, necesitamos crear una solicitud de revisión o **pull request**.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9gaicoolwgckatxpg08y.png)

```
Actualizando el contenido del repo.
```
Al ser git un sistema donde múltiples personas colaboran, puede ser que necesitemos mantener nuestro repositorio local actualizado.
Para ello hay dos maneras en que podemos hacerlo:

1. Usando git pull.
2. Usando rebase.

En la opción 1, usamos el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p1i9ax91029whdfauuin.png)

aquí upstream es la ubicación desde la que necesitamos actualizar el contenido y main es la rama de la que hay que hacer **pull**.


Para la opción 2, podemos utilizar el siguiente comando:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wl4d3vgbvyteblh7btgu.png)


Rebase es preferible en comparación con pull, ya que pull es una combinación de git fetch y git merge que fusiona los cambios locales con las actualizaciones.

_________________________________________________________________

Compartí tu opinión o escribime!
[Github](https://github.com/selenel21)
[Twitter](https://twitter.com/selene_nr	)