Escrito el 21 noviembre 2012 por Luis Ignacio Díaz Martínez
Tabla de contenidos
Bueno, siempre hay una primera vez para todo ¿no? ahora voy a explicar como empezar con lo más básico en GitLab y GitHub ya que el procedimiento es el mismo… ( o muy parecido ).
Básicamente lo que haremos es subir un proyecto a nuestro repositorio… para ello tan solo tendremos que seguir las pautas que mostraré a continuación.
Primero de todo vamos a explicar un poco la temática del asunto…
Tenemos que hacernos a la idea que localmente tenemos un proyecto y lo queremos añadir a un servidor remoto donde tenemos instalado ( o lo tiene un amigo ) un servidor git con GitLab o sencillamente lo queremos colgar a GitHub ( ya que es el mismo procedimiento ).
Por lo tanto, primero tendremos que configurar nuestra máquina para que se conecte con el servidor y así poder subir el código… esto se realiza por conexión SSH ( normalmente utilizado en los servidores para crear conexiones remotas seguras ) así que realizaremos una conexión segura al servidor con una llave ( que se añadirá en GitLab o GitHub ) que nos identificará y dejará que podamos contactar con el.
Bueno… se me olvido decirlo, pero para realizar todo esto necesitaremos instalar el siguiente paquete para poder realizar todo esto…
1 |
apt-get install git |
Eso es todo…
Primero nos tenemos que dirigir al directorio donde tenemos el proyecto ( local ).
Una vez estemos dentro, crearemos dos ficheros ( con nano mismo… o como quieras ):
Como sus nombres indican uno es el fichero de configuración de git y el otro el de ficheros ignorados.
Así que cada fichero contendrá lo siguiente:
Fichero: «.gitconfig»
1 2 3 4 5 6 7 8 |
[user] name = Luis Ignacio Díaz Martínez email = luigdima@gmail.com [color] status = auto branch = auto diff = auto interactive = auto |
Fichero: «.gitignore» ( este paso no se realiza si no tienes nada que ignorar )
1 2 |
# Ignores \nbprojects |
**Nota: Importante destacar el primer punto del nombre del fichero, esto hará que el fichero pase a ser oculto.
**Nota: Actualmente en mi distribución estos dos ficheros no son identificados ( puede que sea cosa mia )
Vale, todo esto funciona de forma encriptada… y necesitamos de unas claves SSH con tal de podernos conectar al servidor remoto y que este nos permita subir los ficheros.
Una vez hemos generado esta clave tendremos que copiarla en nuestro GitLab ( o GitHub ) para asociarlo a nuestro usuario.
Primero en la máquina local generamos la clave de la siguiente forma:
1 |
Nos realizará el siguiente tutorial:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Generating public/private rsa key pair. Enter file in which to save the key (/home/luigdima/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/luigdima/.ssh/id_rsa. Your public key has been saved in /home/luigdima/.ssh/id_rsa.pub. The key fingerprint is: 81:3e:d0:52:d8:5b:50:55:d2:07:70:e9:e4:fd:09:01 luigdima@gmail.com The key's randomart image is: +--[ RSA 2048]----+ | ooo..+E=o | | .o... o+.. | | o oo. + o. | | +. . o.. | | o S ...| | . ..| | | | | | | +-----------------+ |
Si nos fijamos en los «Enters« podemos observar las preguntas que nos realiza:
1 2 3 |
cat /home/luigdima/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzQVH85ANOBrSTUBa36czmTW1nV6kPdABYxTTd1bWsf9FQRMUrLXLcosZ4Pktn+8+g9YGL7PNqhfIugM5iZSnuchfranMbz1FDriAgFqDSiAhRebAZuioWP1Se7ievuwY/7LQEQP8L5EZmFbo8fx+sdkJaIg2GeeK5EcMbHg/tWRzdBHlZSIxR/yJbIr/oBIlHwgsTROCVyoU/0cStu0thNhnl7+VNABj2NrZ14syyG/A+3w6Qe3B0SYdtJFikscyTOyWTVq1aB684Zi04JXt5FkU0E5lB7Mz5W1lU93QZ9oXBxQkQa+I/q1h3VSmkWXNqAku1S3MN9sxpeSMFVnN7 luigdima@gmail.com |
Una vez tenemos la clave, la copiamos y la pegaremos en el perfil de nuestro usuario de GitLab.
Está opción se encuentra en nuestro perfil en la pestaña «SSH Keys»… sencillamente le damos a «Add New» y pegamos la clave generada.
Una vez añadida podemos continuar.
Esto es sencillo… vamos a comprobar si nuestra clave funciona correctamente… para ello nos dirigimos a nuestro terminal y realizamos lo siguiente:
1 |
ssh git@github.com |
Y nos preguntará si queremos conectarnos… un mensaje parecido a este:
1 2 3 |
The authenticity of host 'github.com (207.97.227.239)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)? |
Al indicar «yes» nos saldrá el siguiente mensaje:
1 2 3 4 5 6 7 8 9 10 11 |
luigdima@DEPINF01:~$ ssh git@sdsbdn.org The authenticity of host 'sdsbdn.org (134.0.8.70)' can't be established. RSA key fingerprint is 82:04:70:e7:34:4d:95:6d:47:ab:8f:f1:27:8f:aa:e3. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'sdsbdn.org,134.0.8.70' (RSA) to the list of known hosts. PTY allocation request failed on channel 0 hello luigdima_gmail_com_1353517445, this is git@vps running gitolite3 v3.04-4-g4524f01 on git 1.7.2.5 R W gallery R W testing Connection to sdsbdn.org closed. |
Eso significa que está todo bien! lógicamente tenemos el acceso SSH bloqueado desde este usuario y por lo tanto no se puede realizar una conexión de control.
Este error me ha dado bastante por saco… al final he conseguido solucionarlo mirando la documentación de GitHub.. más que nada lo único que he hecho es…
1 |
ssh-add |
Sencillamente… y ya funciona.
Ya lo tenemos todo preparado para subir nuestro primero proyecto… así que si nos situamos en el directorio del proyecto ejecutaremos lo siguiente:
1 |
git init |
Sencillamente indicamos que estamos inicializando un proyecto git, sencillamente esto crea el directorio «.git» donde se almacena toda la información.
He explicado más arriba en una nota que los archivos de configuración de git no me los pilla bien… así que bueno, como siempre hay alternativas… sencillamente vamos a editar el archivo ‘conf’ que se encuentra en el directorio creado en la inicialización del proyecto ( .git ).
1 |
nano .git/config |
1 2 3 4 5 6 7 8 |
[user] name = Luis Ignacio Díaz Martínez email = luigdima@gmail.com [color] status = auto branch = auto diff = auto interactive = auto |
Como podemos ver hemos añadido el apartado «[user]».
Esto sirve sencillamente para que identifique el usuario que envía el proyecto y no lo coja de forma automática… ya que si es así añadiría el usuario que tiene por defecto el sistema operativo y por lo tanto tendríamos commit realizados por distintos usuarios… es una forma de que el usuario envie siempre sus cambios con un mismo nombre y dirección de correo.
Este archivo de configuración puede incluir muchos más campos… como por ejemplo más arriba hemos visto como podemos excluir archivos…
Ahora hacemos una lista del los archivos que serán subidos al repositorio.. para realizar esta tarea es tan sencillo como hacer…
1 |
git add * |
Ahora vamos a revisar que todo se añadiese correctamente…
1 |
git statusa |
Todo lo que vemos en pantalla como será lo que se subirá al repositorio
Ahora lo importante, el commit… que sencillamente por así decirlo significa «ya tengo el código listo, ahora lo subo al servidor«.
Por lo tanto primero realizamos el ‘commit’ de la siguiente forma:
1 |
git commit -m 'Subo la estructura del proyecto al repositorio de GitHub' |
Ahora conectamos con nuestro servidor:
1 |
git remote add origin git@github.com:my_company/my_project.git |
Y por último empujamos el código hacia el servidor
1 |
git push -u origin master |