Lo que he aprendido: cómo no liarla cuando contribuyes a un repo en Github

Lo que os voy a contar hoy es más un recordatorio para mí misma que otra cosa. Como se puede intuir del título yo la lié. La lié bien gorda. Tanto que la mejor opción fue eliminar mi fork y empezar otra vez desde el principio. Así soy, amigos. Para que no os pase lo mismo os traigo la Guía de la contribución. Vamos a ello.


A la hora de contribuir a un repo los pasos a seguir son los siguientes:

  1. Hacer un fork
  2. Clonar
  3. Configurar remote
  4. Crear rama
  5. Pull request
  6. Borrar rama
  7. Sincronizar

A continuación os cuento que hacemos en cada uno de ellos.

Hacer un fork

Hacemos un fork del proyecto al que queramos contribuir en la web de Github. Ahora tendremos una copia nuestra del proyecto en la que podemos hurgar.

Clonar

Clonamos nuestro fork en local, bien en la web o usando la consola:

$ git clone https://github.com/NuestroUsuario/NuestroFork

Configurar remote

Configuramos el repo original como remote para poder recuperar los cambios que se hagan allí mientras nosotros trabajamos en nuestro fork.

$ git remote add upstream https://github.com/UsuarioOriginal/RepoOriginal

Le llamo upstream1 porque es el repo desde el que hago pull, pero podría llamarle de cualquier otra manera.

Crear rama

Para cada cambio que queramos hacer creamos una rama nueva. Esto facilitará los merges. Además, de esta manera nuestra rama master permanecerá idéntica a la rama master original y nos evitamos líos.

$ git branch feature
$ git checkout feature

O en modo vagancias:

$ git checkout -b feature

Pull request

Cuando hayamos terminado con nuestra contribución hacemos un Pull request desde la propia web. Ahora tendremos que esperar a que el dueño del repositorio original decida aceptar el cambio o no.

Borrar rama

Una vez aceptado el cambio GitHub nos da la opción de borrar la rama directamente dándole a un botoncillo. Obedecemos.

Sincronizar

Solo nos falta actualizar nuestra rama master para que incluya los cambios que nos acaban de aceptar (y cualquier otro cambio que se haya hecho, claro). Para ello recuperamos los cambios del repo upstream:

$ git fetch upstream

Nos cambiamos a nuestra rama master si no estamos ya en ella:

$ git checkout master

Y hacemos un merge:

$ git merge upstream/master

Ahora nuestra rama master es igualita a la rama master del repo original y no hemos roto nada. Todo bien.

git
(de xkcd)

Referencias

Configurar un remote
Sincronizar un fork


  1. Hay una discusión sobre eso aquí 
Anuncios

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s