Git for dummies: Primeros pasos

Si eres desarrollador experimentado o estas iniciándote en este largo y frustrante camino de la programación de computadoras. Este articulo  te podría interesar, por el hecho de conocer una herramienta que  te ayudara tanto en tu trabajo como en proyectos personales en los cuales involucres a tus amigos o colegas.

Esta herramienta es una de las más usadas en lo que se refiere al control de versiones, es tan potente  que la mayoría de proyectos de Software Libre y de Open Source la usan para darle seguimiento a todo su ecosistema de desarrollo.

¿Qué es 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 cuando estas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT.  Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena.  Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux.

¿Como lo obtengo?

Git esta disponible para GNU/Linux, Windows y Mac

GNU/Linux: Para Linux es más fácil, ya que en las distros más conocidas esta empaquetado con el nombre de git ya listo para instalar, pero si tienes algún problema puedes seguir esta guía http://git-scm.com/download/linux

Windows -> http://git-scm.com/download/win

Mac -> http://git-scm.com/download/mac

¿Cómo lo instalo ?

La instalación es super fácil y mucho más para los usuarios Linux, pero los creadores han desarrollado una guía que te ayudara en la instalación en cualesquiera de las plataformas antes mencionadas. http://git-scm.com/book/es/v1/Empezando-Instalando-Git

¿Cómo lo configuro ?

Punto importante es la configuración, por el hecho de mantener una relación entre tu usuario,e-mail y tu repositorio, a demás te será de mucha utilidad para sincronizar repositorios externos, también podrás configuras  muchas opciones como el editor a utilizar, plantilla, llaves, colores etc. Acá te dejo una guía bien explicada de como hacerlo correctamente Git configuración

Primeros pasos: Creando un repositorio

A continuación te detallado algunos comandos básicos para crear y administrar tu repositorio.

Paso1: Iniciando un repositorio existente

Solo debes de ingresar al directorio donde tienes tus script y teclea el siguiente comando.

$ git init

Esto crea un nuevo subdirectorio llamado .git que contiene todos los archivos necesarios del repositorio —un esqueleto de un repositorio Git. Todavía no hay nada en tu proyecto que esté bajo seguimiento. Si deseas empezar a controlar versiones de archivos existentes (a diferencia de un directorio vacío), probablemente deberías comenzar el seguimiento de esos archivos y hacer una confirmación inicial. Puedes conseguirlo con unos pocos comandos git add para especificar qué archivos quieres controlar, seguidos de un commit para confirmar los cambios:

$ git add .
$ git add README
$ git commit –m 'versión inicial del proyecto'

Explicación de los comandos

  • git add . Este comando agrega los archivos a controlar del repositorio que pueden ser individuales con add nombre archivo todos usando git add . 
  • git commit -m confirma los cambios y agrega un texto para saber que es lo que se  cambio,agrego o se elimino.

Con esos sencillos comandos ya tienes tu repositorio básico creado ahora solo falta sincronizar tu repositorio con GitHub.

Paso 2: Clonando un repositorio existente

Si deseas obtener una copia de un repositorio Git existente —por ejemplo, un proyecto en el que te gustaría contribuir— el comando que necesitas es git clone. Si estás familizarizado con otros sistemas de control de versiones como Subversion, verás que el comando es clone y no checkout. Es una distinción importante, ya que Git recibe una copia de casi todos los datos que tiene el servidor. Cada versión de cada archivo de la historia del proyecto es descargado cuando ejecutas git clone. De hecho, si el disco de tu servidor se corrompe, puedes usar cualquiera de los clones en cualquiera de los clientes para devolver al servidor al estado en el que estaba cuando fue clonado (puede que pierdas algunos hooks del lado del servidor y demás, pero toda la información versionada estaría ahí —véase el Capítulo 4 para más detalles—).

Puedes clonar un repositorio con git clone [url]. Por ejemplo, si quieres clonar la librería Ruby llamada Grit, harías algo así:

$ git clone git://github.com/schacon/grit.git

Esto crea un directorio llamado “grit”, inicializa un directorio .git en su interior, descarga toda la información de ese repositorio, y saca una copia de trabajo de la última versión. Si te metes en el nuevo directorio grit, verás que están los archivos del proyecto, listos para ser utilizados. Si quieres clonar el repositorio a un directorio con otro nombre que no sea grit, puedes especificarlo con la siguiente opción de línea de comandos:

$ git clone git://github.com/schacon/grit.git mygrit

Ese comando hace lo mismo que el anterior, pero el directorio de destino se llamará mygrit.

Git te permite usar distintos protocolos de transferencia. El ejemplo anterior usa el protocolo git://, pero también te puedes encontrar con http(s):// o usuario@servidor:/ruta.git, que utiliza el protocolo de transferencia SSH. En el Capítulo 4 se introducirán todas las opciones disponibles a la hora de configurar el acceso a tu repositorio Git, y las ventajas e inconvenientes de cada una.

Paso 3: Sincronizando mi repositorio con cuenta de Github

GitHub es una plataforma de desarrollo de software colaborativa que sirve para alojar proyectos utilizando el sistema de control de versiones Git. Utiliza el framework Ruby on Rails por GitHub, Inc. (anteriormente conocida como Logical Awesome). Desde enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. El código se almacena de forma pública, aunque también se puede hacer de forma privada, creando una cuenta de pago.

Características

  • Un wiki que funciona con gollum, el cual opera con Git para el mantenimiento de las distintas versiones de las páginas.
  • Un sistema de seguimiento de problemas, que al estilo del clásico sistema de tickets, permiten a los miembros de tu equipo (o a cualquier usuario de GitHub si tu repositorio es público) abrir un ticket detallando un problema que tenga con tu software o una sugerencia que desee hacer al mismo.
  • Una herramienta de revisión de código, donde se pueden añadir anotaciones en cualquier punto de un fichero (ej: “Esto es mejor que lo extraigamos a una nueva clase”), y debatir sobre determinados cambios realizados en un commit específico.
  • Un visor de ramas donde se pueden comparar los progresos realizados en las distintas ramas de nuestro repositorio.

Los siguientes comandos te mostraré como sincronizar tu repositorio local con tu repositorio en GitHub.

Lo primero que tienes que hacer es crear una cuenta en GitHub.

Cuando tengas tus credenciales, procedes a crear un repositorio como se observa en la siguiente imagen.

git_repo

 

Después se te mostrará una ventana como la siguiente, en la cual puedes llenar los datos como se observa en la imagen, por defecto se te marca como publico, ya que para crear un repositorio privado tiene un módico costo.

git_repo_create

Ingresa el nombre del repositorio, luego escribe una descripción de lo que contendrá tu repo o cual es el objetivo de la creación del mismo.

Selecciona que cree el archivo inicial del README y selecciona el tipo de licencia de tu proyecto. Luego clic en el botón Create repository

Se te mostrará una ventana como se observa en la siguiente imagen, la cual solo contiene el archivo README.md y el archivo de la licencia que seleccionaste.

git_repo_createdEs sumamente importante el nombre del repositorio, ya que sin el usuario y el nombre del repositorio no podrás sincronizarlo para este caso la url del repositorio seria https://github.com/ludwin/Test.

Ya tenemos todo listo para comenzar hacer algunas pruebas desde nuestro repositorio local con el remoto.

Ingresa al directorio donde tienes tus script del proyecto a sincronizar y teclea los siguientes comandos partiendo que mi directorio se llama opengl

$ git init

Iniciamos el directorio que será sincronizado con el repositorio remoto, luego tenemos que actualizar el repositorio remoto con el local.

$ git pull https://github.com/ludwin/Test

Recuerda que después del comando tiene que colocar la url de tu repositorio en mi caso es como se escribió en el comando, mucho cuidado con esa instrucción.

Procedemos a agregar los archivos locales que serán controlados

$ git add .

Le decimos a git que agrega una descripción del cambio realizado.

$ git commit -m "Inicia subida de archivos" -a 

Solo nos resta hacer efectiva la carga todos los commits de la rama local al GitHub

$ git push https://github.com/ludwin/Test

Se te solicitara el usuario y la contraseña de GitHub con la cual te registraste, si te aburre estar ingresando siempre el usuario y la contraseña al hacer push, puedes configurar GitHub para que use una llave de ssh.

Puedes observar que en tu repositorio local y remoto tienen los mismo. Si haces un cambio en el local siempre tiene que hacer los pasos anteriores de agregar el archivo modificado, hacer commit y agregar el comentario, para luego hacer push en el repositorio remoto. Cabe mencionar que si realizaste cambios en el repositorio remoto tienes que actualizar tu repo local con el comando git pull nombre_repositorio

Para que practiques estos y muchos comandos más te dejo un link en el cual en 15 minutos puedes aprender a gestionar esta poderosa herramienta, el curso es creado por los desarrolladores de mencionada aplicación.

https://try.github.io/levels/1/challenges/1

Ideos en los cuales pueden aprender mucho más

http://git-scm.com/videos

Algunos clientes gráficos para Git

http://git-scm.com/download/gui/linux

Libro sobre la administración de Git

http://git-scm.com/book/es/v1

Guía de supervivencia github-cheat-sheet

 

 

Comparte este contenido!.Tweet about this on TwitterShare on Google+Share on FacebookEmail this to someone

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *