domingo, 1 de febrero de 2015

Comandos básicos git

 
Instalamos git
sudo apt-get install git git-core
Nota: Si queremos instalarlo en otro sistema que no sea linux lo podemos hacer desde:
http://git-scm.com/
Creamos un usuario

git config --global user.name "Aitor LA"
git config --global user.email "aitor@kaixo.com"

Nota: El usuario va entre comillas. Nos permite saber quien ha realizado los cambios.


Iniciamos el repositorio
mkdir /home/aitor/git
cd /home/aitor/git
git init
Nota: Se crea un directorio oculto .git, que es donde se guardan los cambios

Comprobar el estado
git status
Nota: Nos permite saber si hay algún fichero cacheado, modificado,..


Añadir fichero a la caché intermedia o stage
Vamos a crear un fichero, vemos el estado que no indica que no está cacheado, lo añadimos a la caché. Esto hay que hacer antes de un commit.
vi fichero.txt
git status
git add fichero.txt
git status

Realzar un commit

git commit -m “Primera prueba con git”
[master (root-commit) ec3b174] Primera prueba con git
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 fichero.txt
Nota: Para pasar de la zona de cache intermedia al repositorio git hay que hacer un commit.
Nota: Si no le ponemos un comentario nos abre un editor vi para que insertemos el mensaje.


Añadimos un registro y realizamos un commit directamente
vi fichero.txt
git commit -a -m “Modificamos el fichero”
[master 8c0d578] Modificamos el fichero
1 file changed, 1 insertion(+)

Nota: Para no tener que hacer un add podemos pasar el parámetro -a

Borramos archivos
rm fichero1.txt
git status
git rm fichero1.txt
git commit


Movemos archivos
mkdir ficherosviejos
mv fichero2.txt ficherosviejos/fichero2.txt
git status // vemos que hay una nueva carpeta ficheros viejos y se ha borrado ficheros2.txt
git rm fichero2.txt
git add ficherosviejos/fichero2.txt


Deshacer cambios
vi ficheros.txt
git add ficheros.txt // y nos damos cuenta que no queremos pasar de cache al repositorio)
git reset HEAD fichero3.txt
git checkout -- nombre_archivo


Examinar el registros
git log // visualiza los diferentes commit que se han realizado. Abre un vi por lo tanto se cierra con :q
git log -- oneline // solo una linea


Trabajando con ramas (Branch)

git branch rama1 // crea la rama 1
git branch // vemos las ramas que tenemos con * la rama seleccionada
get checkout rama1 // seleccionamos la rama1
git checkout -b rama2 // crea la rama y la selecciona


git brach -d rama2 // borramos una rama
Union de Ramas (merge)
git log -- online -- decorate
git checkout master
git merge rama1


Resolucion de conflictos
Si hay cambios en la rama principal y paralela en la misma region de codigo
git checkout -b ramacorrecion
vi fichero1.txt
git add fichero1.txt
git commit
git checkout -b ramacorrecion2
vi fichero1.txt
git add fichero1.txt
git commit


git merge ramacorrecion
git merge ramacorrecion2
git status
vi fichero.txt // lo dejams como creemos que esta correcto
git add fichero.txt // automaticamente soluciona el conflicto
git status


Ir a un commit anterior


git log  -- oneline
git checkout 12fss886 // identificador del commit
git checkout master // volvemos a la rama inicial


TAG: alias a commits concretos
Para en lugar del identificador del commit utilizar un nombre
git tag // ver lista de tags
git tag version2.0 // da el tag al master
git tag 12fss886 version10 // da el tag a


git checkout version10


Push y pull a repositorios remotos
git remote add origin /Dropbox/repositorio.git // o direccion github
git push origin master // donde master es la rama que querems enviarse
git pull origin master // descargamos los cambios que han hecho hay que hacerlo de vez en cuando
git pull - -rebase // para no vperder cambios iportantes en local.


Instalamos gitk que nos permite ver los cambios en modo gráfico
apt-get install gitk
y lo ejecutamos
gitk

Práctica Control de versiones Git en la nube
La idea es utilizar github.com para tener un repositorio en la nube.


Nos registramos en github.com. Yo lo he hecho con el usuario aitorla.
Pinchamos dentro de nuestro usuario y dentro de la pestaña repositorios pinchamos en New:
Damos el nombre y la descripción a nuestro repositorio. Pinchamos en crear repositorio:

Vemos que nuestro repositorio se encuentra en la url:

Creamos un fichero README.me y lo enviamos a nuestro repositorio:
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/aitorla/ejemplo.git
git push -u origin master
Username for 'https://github.com': aitorla
Password for 'https://aitorla@github.com':
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/aitorla/ejemplo.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.



Enviamos el repositorio
git remote add origin https://github.com/aitorla/ejemplo.git
git push -u origin master

No hay comentarios:

Publicar un comentario