Centro de soporte. Hosting: Git

GIT

¿Qué es Git?

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones. Git ha demostrado su eficiencia en proyectos de alta envergadura y con un número de archivos de código fuente considerablemente alto.

Ofrece una alta potencia y flexibilidad. Por esto y sobre todo, por la rapidez de ejecución, tanto a nivel de órdenes como de sincronización de archivos, se ha convertido en un sistema de control de versiones con funcionalidad plena y cada vez más utilizado en proyectos de alta relevancia, como por ejemplo el grupo de programación del kernel de Linux.

Ventajas de Git

Existen grandes ventajas como son independencia ya que se puede hacer el trabajo incluso si no tienes conexión a red y luego pasarlo a algún otro lugar sin complicarse la vida y mejoras en la cooperación entre quien desarrolla aplicaciones ya que se puede trabajar en ciertas partes del proyecto sin tener que subir todo a un servidor.

También muestra una mejora notable en la rapidez de desarrollo ya que no solo aumenta la facilidad de trabajo dentro del equipo de desarrollo sino que las tareas a realizar son mas rápidas por la forma de trabajo distribuida.

Software

Para hacer uso de todas las posibilidades que nos ofrece Git, el primer paso es conectarnos a nuestro hosting mediante el protocolo SSH. Esto se puede hacer de varias maneras y desde Linux, Windows o Mac, o desde cualquier sistema que permita la conexión mediante este protocolo.

Desde Windows podemos utilizar software como Putty, uno de los mejores clientes SSH para este sistema operativo, o bien aplicaciones como TortoiseGit o SmartGit, que nos facilitan el manejo de los repositorios mediante una interfaz gráfica de usuario o GUI.

Desde Mac podemos utilizar el propio terminal del sistema en modo comando o también aplicaciones gráficas como Tower, una de las más extendidas para este propósito.

¿Cómo conectarse?

De ahora en adelante vamos a utilizar Putty para manejar Git desde Windows, pero los pasos son similares para otros sistemas operativos utilizando SSH en modo comando.

El primer paso es abrir Putty y conectarse a nuestro hosting utilizando nuestro nombre de dominio, a continuación nos pedirá nuestro ID de SSH y la contraseña (son los mismos datos que los de acceso por FTP).

Ahora ya estamos dentro de nuestro hosting y ya está todo listo para empezar a hacer uso de Git. Podemos ver una lista de todos los comandos disponibles escribiendo:

# git

Nos mostrará esto:

usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]
The most commonly used git commands are:
Add file contents to the index
Find by binary search the change that introduced a bug
List, create, or delete branches
Checkout a branch or paths to the working tree
Clone a repository into a new directory
Record changes to the repository
Show changes between commits, commit and working tree, etc
Download objects and refs from another repository
Print lines matching a pattern
Create an empty git repository or reinitialize an existing one
Show commit logs
Join two or more development histories together
Move or rename a file, a directory, or a symlink
Fetch from and merge with another repository or a local branch
Update remote refs along with associated objects
Forward-port local commits to the updated upstream head
Reset current HEAD to the specified state
Remove files from the working tree and from the index
Show various types of objects
Show the working tree status
Create, list, delete or verify a tag object signed with GPG
See 'git help COMMAND' for more information on a specific command.

Para ver la ayuda o descripción de cualquiera de los comandos de Git simplemente tendremos que escribir Git y el comando con la opción --help, por ejemplo:

# git add --help

Volcar un repositorio remoto

Para conectarse a un repositorio remoto primero tenemos que clonarlo a nuestro hosting. Supongamos que tenemos el repositorio en el URL http://mirepositorio.com/git/repo01.git. En primer lugar podemos crear la carpeta donde queramos descargarlo y después acceder a ella:

# mkdir git
# cd git

A continuación clonamos el repositorio. Si es público lo haremos así:

# git clone git://mirepositorio.com/git/repo01.git

Si es privado, es decir, que tenemos una contraseña, lo haremos así:

# git clone git://usuario@mirepositorio.com/git/repo01.git

Esto crea una carpeta llamada repo01 con todo el árbol de directorios y archivos del repositorio, por lo que ya podremos empezar a trabajar con él.

Manejar el repositorio

Ahora ya podemos añadir archivos, eliminar archivos, subir ficheros al repositorio o descargarlos y todas las operaciones que necesitemos.

Primero nos posicionamos dentro del directorio del repositorio:

# cd repo01

Para añadir ficheros tenemos que utilizar el comando “add”, ejemplos:

# git add fichero

# git add directorio/fichero

# git add directorio/fichero0*

Para borrar ficheros, “rm”:

# git rm fichero

# git rm directorio/fichero

# git rm directorio/fichero0*

Una vez añadidos, tenemos que propagar los cambios en local, Git no lo hace automáticamente, y así podemos añadir todos los archivos que queramos. Cuando hayamos terminado propagamos todos los cambios realizados hasta el momento, esto lo hacemos con el comando “commit”, ejemplo:

# git commit -m “Primera modificación”

El parámetro -m especifica una descripción simple o comentario de la operación.

Al hacer un commit, Git utilizará la información de persona usuaria para guardar en la transacción. Esta información normalmente se basa en nuestro nombre de persona usuaria del sistema y de equipo, si queremos personalizar estos datos podemos hacerlo así:

# git config --global user.name "Usuario"

# git config --global user.email usuario@midominio.com

Ahora que ya tenemos los cambios propagados podemos sincronizarlo con nuestro repositorio, esto lo hacemos mediante el comando “push”, ejemplo:

# git push origin master

Nos pedirá la contraseña y listo, ya tendremos nuestro repositorio remoto actualizado. Las opciones “origin” y “master” son necesarias la primera vez que subimos al repositorio, le estamos indicando que sincronice los datos con la rama “master” o rama principal del proyecto.

Si queremos hacer lo contrario es decir, bajar cambios desde el repositorio remoto a nuestro hosting tenemos que utilizar el comando “pull”, ejemplo:

# git pull

En cualquier momento podemos ver el estado del repositorio o si hay cambios pendientes por hacer “commit” mediante el comando “status”, ejemplo:

# git status

Trabajando con ramificaciones

Hasta ahora todos los cambios los hemos realizado en la rama principal o “master”, es decir un único hilo de trabajo. Pero puede ser muy útil utilizar varias ramas paralelas a la principal, por ejemplo para trabajar con una versión específica de nuestro proyecto o añadir alguna funcionalidad nueva a a nuestra estructura original.

Para crear una nuevo rama o “branch”, en el lenguaje de Git, simplemente tendríamos que escribir:

# git branch rama-nueva

Una vez creada tenemos que posicionarnos dentro de ella:

# git checkout rama-nueva

Ahora ya podemos crear archivos, modificarlos, etc todo ello dentro del entorno de la rama secundaria. Una vez hechos los cambios haremos un “commit” tal y como hacíamos anteriormente:

# git commit -m “Cambios en rama [rama-nueva]”

Y si ya hemos terminado podremos volver a nuestro hilo principal de trabajo “master” mediante:

# git branch master

Fusionando ramificaciones

Si hemos creado una rama nueva en base a una modificación de un archivo para el que hemos solucionado un problema de código, y queremos que esa modificación sea definitiva y que figure en la rama principal del proyecto “master”, podemos fusionar esa rama con la principal. Para ello usamos el comando “merge”.

Primero nos posicionamos en la rama principal:

# git checkout master

A continuación fusionamos la rama secundaria con la principal:

# git merge rama-nueva

Una vez hecho esto si todo esta correcto, ya podemos borrar la rama secundaria ya que no será necesaria en el futuro:

# git branch -d rama-nueva
Español
logo_inverse

...la página se está cargando...