Skip to content
This repository has been archived by the owner on Aug 13, 2020. It is now read-only.

Tutorial paso a paso del flujo de trabajo

Álex Sáez edited this page Feb 15, 2016 · 12 revisions

Ejemplo de una nueva implementación siguiendo el flujo de trabajo.

Tareas pendientes.

La lista de tareas pendientes se puede consultar en la pestaña issues. Las tareas se pueden filtrar en las etiquetas (labels) por temática: Aerodynamics, Flight Mechanincs, Utils & Environment... por hito (milestone), número de comentarios, persona asignada...

Una vez localizada la tarea en la que se quiere participar comienza el proceso de colaboración a partir de un fork del repositorio principal AeroPython/PyFME. El proceso es parecido a éste, recogido en la documentación de GitHub.

Es recomendable comentar en el issue correspondiente para que quede constancia de quién está colaborando en cada tarea y plantear todas las dudas o sugerencias que puedan surgir, así como decisiones importantes.

Fork del repositorio y clone del repositorio.

Hacer un fork es crear una copia personal de otro repositorio. En este caso una copia personal que estará en www.github.com/tu_usuario/PyFME del repositorio principal https://github.com/AeroPython/PyFME. Esta copia te permitirá trabajar con independencia y proponer más adelante que se integren tus cambios en el repositorio original mediante un pull request. Para hacer el fork, ve a la página principal del repositorio y pulsa sobre el botón fork (arriba a la derecha). Debes tener una cuenta en GitHub para poder hacer tu fork.

Una vez creado tu repositorio personal en remoto (alojado en www.github.com), sólo falta descargarlo a tu ordenador. Para ello haremos un clone. Abre una terminal en la carpeta de tu ordenador donde quieras alojar la copia de PyFME y luego escribe:

$ git clone [email protected]:USUARIO/PyFME.git
$ cd PyFME/

Es necesario que tengas instalado y configurado git. Si todavía no lo has hecho, puedes seguir esta guía.

Con el tiempo, puede que el repositorio original evolucione con respecto a tu fork. Para poder actualizar estos cambios más adelante en tu repositorio necesitas hacer:

$ git remote add upstream [email protected]:AeroPython/PyFME.git

Cambios en el código.

Es el momento de cambiar el código a tu antojo, crear nuevos archivos... Haremos estos cambios en una rama de nuestro fork. Las ramas nos permiten seguir líneas de desarrollo diferentes, que más adelante podremos fusionar. La rama por defecto se llama master. No realizaremos cambios directamente sobre esta rama. La utilizaremos para tener en ella el estado actual del repositorio original.

Creando ramas: git branch.

Para crear tu propia rama debes teclear en la terminal:

$ git checkout --b nombre-de-mi-rama  # Crea nueva rama y nos sitúa en ella.

Elige el nombre que más te guste y que esté relacionado con el issue.

Puedes cambiar de rama haciendo:

$ git branch  # lista todas las ramas de nuestro repositorio local.
$ git checkout master  # nos sitúa en la rama master.
$ git checkout nombre-de-mi-rama  # nos sitúa en la rama que creamos antes.

No olvides situarte sobre tu rama para trabajar.

Algo sobre git: git status, git add, git commit...

El proceso de comprobación del estado, incorporación de nuevos archivos al control de versiones, selección de cambios para hacer el commit y, finalmente, la realización del commit están muy bien descritos en la lecciones de la cuatro a la diez de http://gitimmersion.com/lab_04.html

Subiendo cambios al fork: git push.

Una vez hecho el commit con tus cambios puedes sincronizarlo con tu fork en GitHub, haciendo:

$ git push origin nombre-de-mi-rama

Puedes comprobar que tus cambios se encuentran disponibles en tu copia remota del repositorio yendo a www.github.com/tu-usuario/PyFME. No olvides situarte sobre la rama adecuada, ya que por defecto se mostrará la rama master.

Creando un pull request.

Posiblemente esta sea una de las partes mas sencillas. Una vez que tienes tu copia remota actualizada, tienes que ir a la pagina de github.com y en concreto a tu rama, la que quieres "pullear". Luego tan sólo necesitas pulsar el botón verde "New Pull Request" que aparece arriba a la izquierda.

Por último se pueden añadir título y comentarios al pull request:

Comentarios sobre el código.

Borrando las ramas viejas y actualizando el fork.

Una vez que tu pull request ha sido integrado conviene borrar la rama y actualizar el fork. Para ello en la terminal de git: Volvemos a la rama master en caso de que no lo estemos:

$ git checkout master

Traemos los cambios del repositorio original:

$ git fetch upstream

y ponemos al día nuestro master:

$ git merge --ff-only upstream/master

Dado que la rama que acabamos de integrar con el pull request ya no es necesaria podemos borrarla:

$ git branch --delete nombre_de_la_rama

Además hay que borrar la rama en el remoto (ver http://stackoverflow.com/a/2003515/554319):

$ git push origin --delete mis-cambios

Finalmente, actualizamos nuestro fork en el remoto (nuestro fork en el pc está actualizado desde el git merge anterior):

$ git push origin master