Git es un software de control de versiones diseñado por Linus Torvalds, que nos permite manejar un gran número de archivos de una manera simple, controlando diferente versiones, entre muchas otras funcionalidades.
Por ejemplo, Git sirve para proyectos como la red pump.io o incluso para compartir libros. Aunque fue creado con el fin de servir a proyectos grandes de software, puede servirnos para ir guardando los apuntes que tomamos en clase.
Aunque existen servicios que nos ofrecen la posibilidad de crear un repositorio Git público como gitorius o github, puede interesarnos tener nuestro propio repositorio privado. Sea para desarrollar software y liberar la versión definitiva, tomar apuntes en clase, etc. La instalación es bastante simple. Empezaremos en el servidor instalando git-core y si aún no lo tenemos, openssh-server:
apt-get install git-core apt-get install openssh-server
Crearemos un usuario con el que accederemos a través de SSH y/o Git. Primero instalaremos el cliente openssh-client y accederemos por SSH.
apt-get install openssh-client ssh usuario@192.168.1.3 sudo su adduser git
Luego crearemos una clave pública SSH en el cliente y la copiaremos a la carpeta home, del usuario anterior, del servidor:
ssh-keygen scp ~/.ssh/id_rsa.pub git@192.168.1.3:
Crearemos el directorio .ssh en la carpeta home del servidor y copiaremos en el archivo authorized_keys:
mkdir .ssh cat id_rsa.pub >> .ssh/authorized_keys
Modificamos los permisos para que solo podamos acceder nosotros a la clave:
chmod 700 .ssh chmod 400 .ssh/authorized_keys
Hasta aquí tendremos configurado el acceso a través de SSH sin tener que introducir la contraseña.
Inicialización del repositorio Git:
Crearemos el directorio del repositorio que queremos en la carpeta home del usuario en el servidor e inicializaremos el repositorio:
mkdir repo.git cd repo.git/ git --bare init
Clonación del repositorio y primer commit
Suponiendo que la dirección IP del servidor es 192.168.1.3, y el directorio del repositorio está en la carpeta home y se llama repo.git, usaremos el siguiente comando para clonarlo.
git clone git@192.168.1.3:repo.git/
Seguidamente crearemos un archivo llamado hello_world.txt y haremos el primer commit:
touch hello_world.txt git add ./ git commit -u -m"helloworld" git push origin master
¡Ya tenemos nuestro repositorio funcionando!
El logo lo podéis encontrar aquí creado por Jason Long.
No lo entiendo, es una especie de Google Drive, compartido para todo el mundo o algo asi?
Hola K. No es exactamente cómo Google Drive. Una alternativa libre a Google Drive podría ser ownCloud.
Git consiste en control de versiones. Cuando se programa un proyecto grande, ten en cuenta que hay mucha gente modificando archivos distintos, los mismos archivos y distintas versiones. Git lo que permite es que juntar todos estos archivos sea fácil y usable. Ímaginate que son 200 personas trabajando en un proyecto y una modifica una línea en un archivo. Simplemente esa envía esa línea y los demás la reciben.
Esto también puede servir, en lugar de con código, con apuntes. Imagina que tomas apuntes en clase y lo que haces es enviarlos al servidor, para tenerlos allí organizados. Luego desde otro ordenador le pides que te envie la última versión, trabajas sobre ellos, y los vuelves a enviar allí. Esta opción si sería más semejante a Google Drive, Dropbox y todos esos servicios que nos compran nuestra privacidad pagandonos nada. :)
Un saludo.