Que es GIT?
GIT es una herramienta open-source para la administración de código fuente. Fue creado por Linus Torvalds, el creador de Linux. En lo que nos ayudan estas herramientas es en ir llevando control de los cambios en nuestro código, y también nos permite que varios desarrolladores editen el código al mismo tiempo. Incluso si solo es un programador el que esta desarrollando la aplicación usar GIT tiene muchas ventajas, como por ejemplo, pueden ir llevando control de los cambios en el código así no tienen que preocuparse si arruinan algún funcionalidad, si llega a pasar algo malo solo revierten a una versión anterior y problema solucionado.
Alternativas a GIT
Existen muchas otras alternativas a GIT, una de las mas conocidas es Subversion, sin embargo, muchos programadores prefieren usar GIT gracias a su simplicidad, y gracias a que no se requiere tener un servidor, por lo que es fácil de configurar para equipos de una sola persona. Otra alternativa que esta tomando auge es Mercurial, sinceramente se poco sobre esta alternativa pero se basa en los mismos principios de git.
Por que deberían de usarlo?
Pues nos da la libertad a los programadores de hacer lo que queramos sin preocuparnos por arruinar algo, ya que si llegáramos a arruinar algo simplemente restauramos a una versión funcional que esta guardada en git. En el caso de equipos de desarrollo de varias personas, utilizar un sistema de control de versiones debería de ser una obligación, ya que incrementa la productividad de los programadores porque no tienen que preocuparse por arruinar el código de alguien mas o caerle encima con su versión del código y perder cambios que ha hecho otro desarrollador, desafortunadamente por mi experiencia hay equipos de varios desarrolladores que ni siquiera usan control de versiones.
Descargando Git
Git inicialmente fue creado para linux pero ya existen varias versiones para Windows. Nosotros vamos a usar Tortoise GIT en conjunto con msSysGIT.
TortoiseGit es una versión mas grafica de GIT, mientras que msysGIT es una versión de pura consola como la de linux, yo prefiero usar una mezcla de ambas, creo que es lo mejor.
Creando un repositorio de GIT
Para poder utilizar Git primero tenemos que crear un repositorio en la carpeta donde tenemos los códigos fuentes que queremos gestionar utilizando Git. Utilizando TortoiseGIT es bien sencillo, solo hacemos clic derecho sobre la carpeta y seleccionamos
Después de esto dentro de la carpeta se creara una carpeta .git, esta carpeta contiene todo lo que Git utiliza para gestionar el código, no la borren. Esto es el equivalente a usar el comando “git init” en el modo de consola en msysgit.
Creando el archivo .gitignore
En el archivo .gitignore podemos especificar una lista de archivos o tipos de archivo que queremos que se excluyan del control de código, esto es porque generalmente no queremos enviar configuración especificas de nuestra computadora al repositorio de código porque si vienen otros desarrolladores y los descargan nos vamos a pasear en ellos. El problema es que windows no reconoce archivos o carpetas que empiezan con “.” (en el caso de linux todos los archivos que empiezan con “.” son archivos ocultos) y nuestro archivo se debe llamar “.gitignore”. Aquí es donde vamos a utilizar la versión de consola de Git, msysGit. Hacemos clic derecho sobre la carpeta y selecciona “Git Bash here”
Vamos a tener una ventana parecida a esto:
Ahora escribimos:
touch .gitignore
De esta manera creamos nuestro archivo donde vamos a definir todo lo que no queremos incluir en el control de código. A continuación les pongo una lista de los archivo que yo excluyo normalmente para proyectos de .net:
#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
Ahora abramos el archivo .gitignore en notepad y peguemos la lista de archivos de arriba.
Ahora tenemos que agregar el archivo .gitignore a nuestro repositorio, hacemos click derecho sobre el archivo y seleccionamos “add” así como en la imagen.
En la ventana que les va aparece solo hagan clic en OK
Ahora vamos agregar el resto de nuestros archivos, hacemos clic derecho sobre la carpeta que contiene todos nuestros archivos de código y seleccionamos “Add” otra ves. Como podrán ver, excluye automáticamente cualquier archivo que hayamos puesto en nuestro archivo .gitignore.
Ahora ya con esto lo único que nos falta es hacer un commit para guardar todo nuestro código.
Que es un commit?
Un commit quiere decir que ustedes van a transferir los cambios que han hecho en su código al repositorio, para que otros desarrolladores puedan descargarlos, o bien para que ustedes puedan restaurar la versión del repositorio en el caso de que arruinen el código.
Como hacer el commit?
Usando TortoiseGIT
Eso que ven que dice “master” es el branch o rama al que estamos haciendo el commit. En GIT se maneja el concepto de ramas, cada rama es una versión diferente de su código, las ramas se crean para implementar nuevas funciones del programa, por ejemplo, si yo voy agregar a mi aplicación una función para enviar correos, lo ideal es que se cree una rama llamada “enviar correo” una ves terminado de escribir el codigo de esta funcionalidad entonces se une la rama con la rama “master” que es la rama principal, en teoria la rama “master” siempre tiene que poder ser compilada sin errores, por eso es que se crean nuevas ramas para crear funcionalidades. El comando para unir dos ramas se llama “Merge”, mas adelante voy a hablar sobre el.
Por el momento eso es todo ya que este post se extendio mas de lo que pense, dependiendo de las lecturas de este post voy hacer una segunda parte sobre los demás comandos y como usar GIT en una aplicación real.
No related posts.
{ 6 comments… read them below or add one }
Excelente el post, muchas gracias por compartir todo tu conocimiento y espero realices la segunda parte de este tema tan importante en el desarrollo de aplicaciones.
Saludos!
Magnífico post.
Gracias por tu generosidad (y tiempo).
Me ha sido de gran utilidad. Llevaba tiempo buscando “algo” que me ayudara a controlar mis versiones de soft.
Yo también espero esa segunda parte. Mientras tanto dejo mi equipo haciendo mi primer “commit” real.
Nuevamente gracias.
Preciso lo que buscaba, y voy a estar esperando la segunda parte.
Gracias.
Excelente artículo. Comencé a trabajar en un proyecto extra de dos desarrolladores y el problema de control de código es un tema.
Apoyo la moción para una segunda parte de este artículo. También me gustaría saber si hay manera de acceder remotamente.
¡Felicitaciones y saludos!
Las herramientas sobre linux tienen una potencia superior. Windows es limitado.
Antes que nada quiero darte las gracias por compartir tus conocimientos ya que ellos sirven de mucho, y como las otras personas que comentaron, tambien me gustaria ver la segunda parte del articulo.
Saludos!