Es decir: Cómo trabajar en varios ordenadores con git, sin usar Github ni ningún servicio similar, usando en su lugar un servidor local y una conexión ssh.
Primero vamos a crear un "repositorio central" en nuestro ordenador de escritorio. Para ello usamos la opción "--bare", que sirve para crear un repositorio sin directorio de trabajo ni archivos:
psicobyte@escritorio:~$ git init --bare proyecto.git
En un repositorio creado con la opción "--bare" no se puede trabajar, por lo que vamos a clonarlo en un proyecto con el que trabajar:
psicobyte@escritorio:~$ git clone ~/proyecto.git
Esto nos crea un directorio llamado "proyecto" con un clon del repositorio central (aún vacío). Aquí ya podemos trabajar normalmente, comitear y pushear como harías con cualquier otro. Por ejemplo:
psicobyte@escritorio:~$ cd proyecto psicobyte@escritorio:~$ touch holamundo psicobyte@escritorio:~$ git add holamundo psicobyte@escritorio:~$ git commit -m "añadido archivo vacío de poca utilidad"
Como me avisa fernand0 en un twitter, al estar nuestro "repositorio central" vacío, la primera vez que hacemos push debemos hacerlo de este modo:
git push --set-upstream origin master
Esto es sólo para la primera vez, y hace que se "emparejen" las ramas master de los repositorios. En adelante se puede hacer push normalmente sin problemas.
Hasta ahora hemos trabajado en un sólo ordenador, pero queremos poder hacerlo también desde un portátil. Nada más fácil.
Para ello necesitamos tener acceso ssh al ordenador de escritorio desde el portátil, y sería una estupenda idea que el ordenador de escritorio tuviese una IP fija. si tenemos eso, sólo hay que clonarlo usando la dirección y la ruta del servidor por ssh de este modo:
En nuestro caso:
psicobyte@portatil:~$ git clone ssh://psicobyte@192.168.1.3/home/psicobyte/proyecto.git
Y ya podemos trabajar tranquilamente.
Naturalmente, usando servicios como no-ip o similares, podemos usar el servidor más allá de nuestra red local.