Buscar en moleculax
Crear y usar un repositorio git en un servidor



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 ..." 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'

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)

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.


.


Powered by

http://emiliogomez.com.ar