Uso básico de github

Para desarrollar la documentación de forma colaborativa se va a utilizar el sistema de control de versiones git, en particular se va a utilizar la forja github. Se ha creado en github la cuenta pi-fp-cloud que se encargará de ir creando todos los repositorios a los que se irán uniendo todos los participantes como colaboradoes.

Crea una cuenta en github

  • Entra en github.com y crea una cuenta nueva
  • Configura las claves ssh siguiendo las instrucciones. (En algunas versiones de Ubuntu, tras la configuración de las claves puedes obtener el error Permission denied (publickey) durante la conexión. Tienes información de cómo resolverlo en [1][2]).
  • Solicita en el foro que te añadan como colaborador a los repositorios de pi-fp-cloud

Usando el repositorio por primera vez

  • Abre una terminal
  • Instala el paquete git
  • Configura sesión de git:
    git config --global user.name "<pon aquí tu nombre>" 
    git config --global user.email <pon aquí tu email>
    
  • Ubícate en el directorio donde quieras que se clonen los repositorios (supongamos ~/github):
    mkdir ~/github
    cd ~/github
    
  • Clonamos un repositorio (por ejemplo el de infraestructura):
    git clone git@github.com:pi-fp-cloud/infraestructura.git
    

    Tendrás en local el directorio infraestructura con la última versión de todos los ficheros.

Haciendo modificaciones y subiéndolas a github

  • Podemos hacer modificaciones sobre los ficheros existentes o crear ficheros nuevos que queramos añadir al repositorio. Por ejemplo, supongamos que hacemos alguna modificación sobre el fichero servidores.xml, si preguntamos a git sobre el estado actual, nos responderá:
    $ git status
    

    # On branch master
    # Changed but not updated:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #    modified:   src/servidores.xml
    #
    no changes added to commit (use "git add" and/or "git commit -a")
    

    Es decir que ha cambiado el fichero src/servidores.xml, pero no se ha consignado (no se ha marcado para actualizar en el repositorio), si realmente queremos incluir las modificaciones en el repositorio, hacemos:
    git add src/servidores.xml
    

    Si volvemos a preguntar por el estado de git:
    $ git status
    

    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #    modified:   src/servidores.xml
    #
    

    Vamos a actualizar el repositorio (en git hay que hacerlo en dos pasos a diferencia de otros sistemas de control de versiones):
    git commit -m "Comentario sobre el fichero modificado" 
    git push
    

Abriendo una sesión sobre un repositorio existente

El clonado del repositorio sólo se suele hacer la primera vez, las demás simplemente se accede al directorio donde se encuentra la copia local y se actualiza:

  • Abrimos una terminal
  • Configura sesión de git (se puede añadir al fichero de configuración de la shell (~/.bashrc por ejemplo)):
    git config --global user.name "<pon aquí tu nombre>" 
    git config --global user.email <pon aquí tu email>
    
  • Accede al directorio con la copia local del repositorio (con el mismo ejemplo de antes):
    cd ~/github/infraestructura
    

    Actualiza el repositorio local:
    git pull
    

[1] https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/201786
[2] https://help.github.com/articles/generating-ssh-keys