Crear y usar un repositorio git en un servidor
Índice
- 1. En el servidor
- 2. En local:
- 3. Bajar git:
- 4. Permitiendo http
- 5. Estudiando cosas que pasan en tu propio repositorio
- 6. Eliminar ficheros
- 7. Un par de apuntes rápidos para deshacer cambios
- 8. Cambiando de ramas
- 9. Git Submodules: Añadir, Usar, Eliminar y Actualizar
- 10. Una gui
- 11. Recursos
- 12. Licencia
1 En el servidor
cd ~ mkdir repository.git cd repository.git git --bare init git config core.sharedRepository true
2 En local:
mkdir repository cd repository git init git add * git commit -m "Initial import" git remote add origin git+ssh://user@server/home/user/git/repository.git git push origin master
3 Bajar git:
git clone git+ssh://user@server/home/user/git/repository.git
4 Permitiendo http
Una vez realizados los pasos anteriores se puede habilitar usar git con http
4.1 En el servidor
$ cd /var/www/ $ git clone --bare /home/user/git/repository repository.git $ cd drupal-el.git $ mv hooks/post-update.sample hooks/post-update $ chmod a+x hooks/post-update $ git update-server-info
4.2 En el cliente
$ git clone http://server/repository.git
5 Estudiando cosas que pasan en tu propio repositorio
$ git pull $ git status $ git log fichero $ git diff 84de2396c3f0fcdc9994028b5bf5f0005c763496 3c933adaf627bc8a58cfefb62ff0f2d5df640673 fichero
6 Eliminar ficheros
$ git rm file $ git commit -m "delete file" file $ git push
7 Un par de apuntes rápidos para deshacer cambios
Revertir ficheros no commiteados
$ 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
8 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
9 Git Submodules: Añadir, Usar, Eliminar y Actualizar
9.1 Añadir
$ git submodule add git@mygithost:billboard lib/billboard
Ver lo que has hecho
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: .gitmodules # new file: lib/billboard # $ cat .gitmodules [submodule "lib/billboard"] path = lib/billboard url = git@mygithost:billboard
9.2 Usando submódulos
$ git submodule init Submodule 'lib/billboard' (git@mygithost:billboard) registered for path 'lib/billboard' $ git submodule update Initialized empty Git repository in ~/git_dev/SampleTheme/lib/billboard/.git/ remote: Counting objects: 26, done. remote: Compressing objects: 100% (22/22), done. remote: Total 26 (delta 5), reused 0 (delta 0) Receiving objects: 100% (26/26), 17.37 KiB, done. Resolving deltas: 100% (5/5), done. Submodule path 'lib/billboard': checked out '1c407cb2315z0847facb57d79d680f88ca004332'
9.3 Eliminando submódulos
$ git submodule rm lib/billboard
9.4 Actualizando submódulos
$ git submodule init $ git submodule update $ git pull
10 Una gui
A quien no le guste el emacs es un animal, pero puede usar algo como lo siguiente:
$ sudo apt-get install git-cola
Y a quien le guste le pueden servir estos atajos, por ejemplo:
C-x v v (siguiente acción. Ej: add, commit) C-x v = (diff) C-x v d (status)
11 Recursos
12 Licencia
Copyright (C) 2013 David Arroyo Menéndez Se permite copiar, distribuir y/o modificar este documento bajo los términos de la GNU Free Documentation License, Version 1.3 o cualquier versión publicada por la Free Software Foundation; sin Secciones Invariantes y sin Textos de Portada o Contraportada. Una copia de la licencia está incluida en GNU Free Documentation License.