Cómo hacer su primera solicitud de extracción en GitHub

¿Qué es la bifurcación?

Cuando amamos el repositorio de alguien y nos gustaría tenerlo en nuestra cuenta de GitHub, lo bifurcamos para que podamos trabajar con él por separado.

Cuando bifurcamos un repositorio, obtenemos una instancia de ese repositorio completo con todo su historial. Después de la bifurcación, podemos hacer lo que queramos sin afectar la versión original.

¿Qué es una solicitud de extracción?

Las solicitudes de extracción son la forma en que contribuimos a proyectos de grupo o proyectos de código abierto.

Por ejemplo, un usuario Harry bifurca un repositorio de ThanoshanMV y realiza cambios en ese repositorio. Ahora Harry puede hacer una solicitud de extracción a ThanoshanMV, pero depende de ThanoshanMV aceptarla o rechazarla. Es como decir: "ThanoshanMV, ¿podrías sacar mis cambios?"

Que significa contribuir

No solo podemos contribuir a un proyecto de código abierto con código, sino que también podemos contribuir de muchas otras formas. Algunas de estas formas se describen a continuación.

Como dice la guía de inicio de hacktitude de 99xtechnology IT, podemos contribuir a un proyecto de código abierto de las siguientes maneras:

  1. Diseño: puede construir los diseños de un proyecto para mejorar su usabilidad, mejorar la navegación y el menú del proyecto en función de los programas de investigación de usuarios, crear arte para logotipos o camisetas y proporcionar guías de estilo para el proyecto.
  2. Redacción: puede escribir y mejorar la documentación del proyecto o traducir la documentación, iniciar un boletín informativo para el proyecto o escribir tutoriales para el proyecto y seleccionar los aspectos más destacados de la lista de correo, o seleccionar una carpeta de ejemplos que muestren cómo se utilizan los proyectos.
  3. Organización: puede vincular problemas duplicados, sugerir nuevas etiquetas de problemas, sugerir cerrar viejos problemas abiertos y hacer preguntas sobre problemas abiertos recientemente para hacer avanzar la discusión.
  4. Ayude a otros: Responda preguntas sobre temas abiertos, revise el código de los envíos de otras personas y ofrezca ser mentor de otro colaborador.
  5. Codificación: ayude a resolver cualquier problema abierto, pregunte si puede proporcionar nuevas funciones y mejorar las herramientas y las pruebas.

¡Hagamos nuestra primera solicitud de extracción!

Si no está muy familiarizado con Git y GitHub, consulte la guía para principiantes de Git y GitHub.

1. Bifurca el repositorio

Bifurque el repositorio haciendo clic en el botón de bifurcación en la parte superior de la página. Esto creará una instancia de todo ese repositorio en su cuenta.

2. Clona el repositorio

Una vez que el repositorio esté en su cuenta, clónelo en su máquina para trabajar con él localmente.

Para clonar, haga clic en el botón clonar y copie el enlace.

Abra la terminal y ejecute el siguiente comando. Clonará el repositorio localmente.

$ git clone [HTTPS ADDRESS]

Ahora hemos configurado una copia de la rama maestra desde el repositorio principal de proyectos en línea.

Necesitamos ir a ese directorio clonado ejecutando este comando:

$ cd [NAME OF REPOSITORY]

3. Crea una rama

Es una buena práctica crear una nueva rama cuando se trabaja con repositorios, ya sea un proyecto pequeño o una contribución al trabajo de un grupo.

El nombre de la sucursal debe ser corto y debe reflejar el trabajo que estamos haciendo.

Ahora crea una rama usando el git checkoutcomando:

$ git checkout -b [Branch Name]

4.Realice cambios y confíelos

Realice cambios esenciales en el proyecto y guárdelo.

Luego ejecute git statusy verá los cambios.

Agregue esos cambios a la rama que acaba de crear usando el git addcomando:

$ git add .

Ahora confirme esos cambios usando el git commitcomando:

$ git commit -m "Adding an article to week 02 of articles of the week"

5. Enviar cambios a GitHub

Para enviar los cambios a GitHub, necesitamos identificar el nombre del control remoto.

$ git remote

Para este repositorio, el nombre del control remoto es "origen".

Después de identificar el nombre del control remoto, podemos enviar esos cambios de forma segura a GitHub.

git push origin [Branch Name]

6. Cree una solicitud de extracción

Vaya a su repositorio en GitHub y verá un botón "Comparar y solicitar extracción" y haga clic en él.

Proporcione los detalles necesarios sobre lo que ha hecho (puede hacer referencia a los problemas utilizando "#"). Ahora envíe la solicitud de extracción.

¡Felicidades! Ha realizado su primera solicitud de extracción.  

Si se acepta su solicitud de extracción, recibirá un correo electrónico.

7. Sincroniza tu rama maestra bifurcada

Antes de enviar cualquier solicitud de extracción al repositorio original, debe sincronizar su repositorio con el original.

Incluso si no va a enviar una solicitud de extracción al repositorio original, es mejor sincronizar con el repositorio original, ya que es posible que se hayan realizado algunas funciones adicionales y correcciones de errores desde que bifurcó el repositorio original.

Siga estos pasos para actualizar / sincronizar esos cambios en su rama maestra:

  1. Primero, verifique en qué rama se encuentra.
$ git branch

Enumerará todas las ramas e indicará la rama actual o activa en verde.

2. Cambie a la rama principal.

$ git checkout master

3. Agregue el repositorio original como un repositorio ascendente.

Para extraer los cambios del repositorio original a su versión bifurcada, debe agregar el repositorio Git original como un repositorio ascendente.

$ git remote add upstream [HTTPS]

Aquí, [HTTPS] es la URL que debe copiar del repositorio del propietario.

4. Obtenga el repositorio.

Obtenga todos los cambios del repositorio original. Las confirmaciones del repositorio original se almacenarán en una rama local llamada upstream / master.

$ git fetch upstream

5. Fusionarlo.

Fusiona los cambios del upstream / master en tu rama master local. Esto sincronizará la rama maestra de su fork con el repositorio upstream sin perder sus cambios locales.

$ git merge upstream/master

6. Enviar cambios a GitHub

En este punto, su rama local está sincronizada con la rama maestra del repositorio original. Si desea actualizar el repositorio de GitHub, debe enviar sus cambios.

$ git push origin master

NOTA: Después de sincronizar su rama maestra bifurcada, puede eliminar ese control remoto si lo desea. Pero también necesitará actualizar / sincronizar su repositorio en el futuro, por lo que es una buena práctica mantenerlo.

$ git remote rm [Remote Name]

8. Elimina la rama innecesaria.

Las sucursales se crean para un propósito especial. Una vez que se logra ese propósito, esas ramas no son necesarias, por lo que puede eliminarlas.

$ git branch -d [Branch Name]

También puede eliminar la versión en GitHub.

git push origin --delete [Branch Name]

Conclusión

GitHub es una poderosa herramienta para controlar el historial de versiones. Todos pueden contribuir a proyectos de código abierto mediante solicitudes de extracción. Las contribuciones no siempre son un código; también hay otras formas de contribuir.

Finalmente, debo decirte que no debes preocuparte si tus solicitudes de extracción son rechazadas. Los mantenedores dedican mucho tiempo a mejorar sus proyectos y saben mucho más sobre sus proyectos que nosotros. Así que no se preocupe si su solicitud no se fusiona.

Mantente fuerte, positivo y nunca te rindas.

- Roy T. Bennett, La luz en el corazón

Este artículo se publicó originalmente en Medium.

Puede contactarme y conectarse conmigo en Twitter.

¡Sigue contribuyendo al mundo del código abierto!