Para crear un repositorio git en servidor propio hay que seguir algunos pasos muy simples, pero deben hacerse en esta secuencia sin alterar nada.
Servidor
Primero entramos al servidor una vez dentro ejecutamos lo siguiente:
cd ~
mkdir repositorio.git
cd repositorio.git
git --bare init
git config core.sharedRepository true
La primer linea cd ~ nos lleva a la home del usuario, es decir que si el usuario que está logueado es fideo la home sería /home/fideo/ para corroborar esto pueden ejecutar pwd y les mostrará donde están parados luego de ejecutar cd ~
La segunda linea crea un directorio llamado repositorio.git el cual tendrá la información que git necesita para llevar nuestro log de archivos.
La tercer linea ingresa al directorio.
La cuarta linea le decimos a git inicialize ese directorio como un repositorio git para realizar los pull y push de ese repositorio.
La quinta y última linea de esta parte se configura en true la variable core.sharedRepository informandole a git que es un repositorio compartido.
Local
Una vez terminado lo anterior vamos a la máquina local donde tenemos el código a subir.
mkdir repositorio
cd repositorio
git init
git add *
git commit -m "Initial import"
git remote add origin git+ssh://user@server/home/user/git/repositorio.git
git push origin master
Para poder bajar / clonar con git ese ropositorio solo tenemos que ejecutar este comando
git clone git+ssh://user@server/home/user/git/repositorio.git
Algunas de las cositas que pueden servir para usar al crear un repositorio git en servidor propio.
git pull
git status
git log archivo
git diff 84de2396c3f0fcdc9994028b5bf5f0005c763496 3c933adaf627bc8a58cfefb62ff0f2d5df640673 archivo
Eliminar archivos
git rm archivo
git commit -m "borro archivo" archivo
git push
Revertir cambios realizados en un archivo específico el cual no hayamos realizado commit
git checkout -- file
Deshacer el último commit no enviado con push
$ git reset --hard HEAD~1
Revertir el último cambiado, al que se le ha hecho push
git push -f origin last_commit:branch
Cambiando de ramas
Es posible que tengamos varias ramas por ejemplo production (prod) y master. Si estamos en master y queremos pasar los cambios a production se puede hacer lo siguiente:
git branch origin/prod # en caso de no tenerla se crea la rama origin/prod
git branch -a # comprobar que realmente estamos en master
git branch --track prod origin/prod # si no lo tenemos ya asocia prod a origin/prod
git checkout prod # cambiamos a la rama prod
git merge master # se merguean los cambios desde master a prod
git push # se suben los cambios
Mas documentación sobre git
Documentación oficial
GitHub
Mas información sobre git en este sitio
Crear un repositorio git en servidor propio