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
4 Permitiendo http
Una vez realizados los pasos anteriores se
puede habilitar usar git con http
5 Estudiando cosas que pasan en tu propio repositorio
$ git pull
$ git status
$ git log fichero
$ git diff 84de2396c3f0fcdc9994028b5bf5f0005c763496
3c933adaf627bc8a58cfefb62ff0f2d5df640673 fichero
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 ..." 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 '1c407cb2315z0847facb57d7
9d680f88ca004332'
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)
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.