Obtener dinero con AdFly

jueves, 23 de abril de 2015

GIT

* INSTALACIÓN GIT y GITWEB

   #aptitude install git
   #aptitude install gitweb

Editar el archivo /etc/gitweb.conf

   $projectroot = "/ruta_local/subruta_local/repositorios/"

* Iniciar el repositorio:

   git init --bare #Para crear el repositorio en el directorio especificado

* Crear una copia del repositorio:

   Local:
   git clone /home/ccordero/curso_git/repositorios/local.git # Se va a clonar en ./local/

   Remoto:
   git clone ssh://ccordero@localhost:22/home/ccordero/curso_git/repositorios/local.git # Se va a clonar en ./local/

   Una rama en específico:
   git clone -b <branch> <remote_repo>

'''
Tu repositorio local esta compuesto por tres "árboles" administrados por git.

El primero es tu Directorio de trabajo que contiene los archivos.
El segundo es el Index que actua como una zona intermedia.
Y el último es el HEAD que apunta al último commit realizado.
'''

* Add commit:

   git add <filename> #Un archivo
   git add . #Todos los archivos del directorio

* Hacer commit:

   git commit -m "Commit message"

Tus cambios están ahora en el HEAD de tu copia local.
Para enviar estos cambios a tu repositorio remoto ejecuta:

   git push origin master #Reemplaza master por la rama a la que quieres enviar tus cambios.

* RAMAS:

   Las ramas son utilizadas para desarrollar funcionalidades aisladas unas de otras. La rama master es la rama "por defecto" cuando creas un repositorio. Crea nuevas ramas durante el desarrollo y fusiónalas a la rama principal cuando termines.

   Iniciar una rama:
   Crear un archivo.
   Hacer commit.
   git push origin <branch> #master

   Crea una nueva rama llamada "Cesar" y cámbiate a ella usando:
   git checkout -b Cesar

   Vuelve a la rama principal:
   git checkout master

   Y borra la rama:
   git branch -d Cesar

* Si no has clonado un repositorio ya existente y quieres conectar tu repositorio local a un repositorio remoto, usa:

   git remote add origin <server>
  
   Ahora podrás subir tus cambios al repositorio remoto seleccionado.

* Actualizar y Fusionar:

Para actualizar tu repositorio local al commit más nuevo, ejecuta:
   git pull
en tu directorio de trabajo para bajar y fusionar los cambios remotos.

Para fusionar otra rama a tu rama activa (por ejemplo master), utiliza
   git merge <branch>
en ambos casos git intentará fusionar automáticamente los cambios. Desafortunadamente, no siempre será posible y se podrán producir conflictos. Tú eres responsable de fusionar esos conflictos manualmente al editar los archivos mostrados por git. Después de modificarlos, necesitas marcarlos como fusionados con:
   git add <filename>

Antes de fusionar los cambios, puedes revisarlos usando
   git diff <source_branch> <target_branch>

* ETIQUETAS

http://git-scm.com/book/en/v2/Git-Basics-Tagging
http://git-scm.com/book/es/v1/Fundamentos-de-Git-Creando-etiquetas

* Se recomienda crear etiquetas para cada nueva versión publicada de un software. Este concepto no es nuevo, ya que estaba disponible en SVN. Puedes crear una nueva etiqueta llamada 1.0.0 ejecutando
   git tag 1.0.0 1b2e1d63ff
1b2e1d63ff se refiere a los 10 caracteres del commit id al cual quieres referirte con tu etiqueta. Puedes obtener el commit id con
   git log
también puedes usar menos caracteres que el commit id, pero debe ser un valor único.

Listar tags:

   git tag
   git tag -l '1.0*' #Expresión regular
   git show 1.0.0 #Mostrar tag de git

Crear tag:

   git tag 1.0.0 1b2e1d63ff

Compartiendo tags (Git por defecto no comparte las etiquetas):

   git push origin 1.0.0 #Una
   git push origin --tags #Todas

Cambiando de etiqueta:

   git checkout -b version1 1.0.0 #Crea una nueva rama: version1
   git checkout tags/<tag_name>

* REEMPLAZA LOS CAMBIOS LOCALES

En caso de que hagas algo mal (lo que seguramente nunca suceda ;) puedes reemplazar cambios locales usando el comando
   git checkout -- <filename>
Este comando reemplaza los cambios en tu directorio de trabajo con el último contenido de HEAD. Los cambios que ya han sido agregados al Index, así como también los nuevos archivos, se mantendrán sin cambio.

Por otro lado, si quieres deshacer todos los cambios locales y commits, puedes traer la última versión del servidor y apuntar a tu copia local principal de esta forma
   git fetch origin
   git reset --hard origin/master

Fuentes:
http://rogerdudler.github.io/git-guide/index.es.html
http://git-scm.com/book/es/v1/Fundamentos-de-Git-Creando-etiquetas