Ahora con esto de estar creando grupos de trabajo de manera distribuida en diferentes ciudades para el desarrollo de software es necesario tener una herramienta de versiones, hemos decidido por usar Bitbucket,ย queย ย es un servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de control de revisiones Mercurial y Git, y creo que lo primero que debemos hacer sobre todo tener socializado de igual manera entre todos los miembros del equipo es que es GIT.
Otro de los principios fundamentales de Git es el de no remover informaciรณn. Cuando introduces un cambio en tu proyecto simplemente aรฑade mรกs informaciรณn al repositorio, lo que permite que sea muy difรญcil estropear algo por error o que no puedas deshacer esas modificaciones. Como todos los sistemas de control de versiones, con Git puedes perder informaciรณn que aรบn no hayas confirmado, pero una vez hecho este paso, todo quedarรก guardado y podrรกs deshacerlo con toda seguridad.
Comenzando con 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 cuando รฉstas 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.
configuraciรณn
Antes que nada debemos descargarlo para utilizarlo en metodo de machos, osase desde la terminal, mas debo comentarles que muchas herramientas ya tienen su maneador visual como es el caso de BITBUCKET que tiene Source Tree.
ยฟQuรฉ palabras utilizamos cuando hablamos de Git?
Hay algunas palabras que voy a utilizar en varias ocasiones:
- Lรญnea de comandos.ย El programa ย que utilizamos para introducir los comandos de Git. Es el ย de Terminal o la consola de comandos. Escribiremos comandos basados โโen texto en lugar de realizar las acciones con el ratรณn.
- Repositorio.ย Un directorio o espacio de almacenamiento donde los proyectos pueden vivir . A veces los usuarios de GitHub acortan esto a โrepoโ. Puede ser local (una carpeta) , o puede ser un espacio de almacenamiento en GitHub u otro host en lรญnea. Se pueden guardar archivos de cรณdigo, archivos de texto, archivos de imagen y muchos mรกs tipos de archivo.
- Control de versiones.ย Bรกsicamente es el propรณsito con el cual Git fue diseรฑado. Git mantiene โfotografรญasโ de cada punto en el tiempo en la historia del proyecto, por lo que nunca perderemos informaciรณn.
- Commit.ย Es un comando muy poderoso. Cuando haces un commit, estรกs diciรฉndole a Git que saque unaย โfotografรญaโ de tu repositorio en ese punto en el tiempo, creando un punto de control al que se puede volver en caso de necesitar restaurar el proyecto.
- Rama (Branch).ย ยฟCรณmo pueden varias personas trabajar en un proyecto al mismo tiempo y que Git no se confunda? Por lo general , cada persona que estรฉ trabajando en el proyecto crea su propia rama y trabaja en unaย funcionalidadย diferente. Es decir, se โramificanโ del proyecto principal nuevas ramas con sus propias versiones completas. Cuando terminas de trabajar en tu rama, es el momento de โfusionarโ la rama actual con la rama โmasterโ. La rama โmasterโ es el directorio principal del proyecto.
ยฟCuรกles son los principales comandos?
- git init.ย Inicializa un nuevo repositorio Git. Mientras no ejecutemos este comando, una carpeta serรก sรณlo eso, una carpeta.
- git config.ย Abreviatura de โconfigureโ. Es muy รบtil cuando se estรก configurando Git por primera vez.
- git help. Ayuda que haceย que aparezcan los 21 comandos git mรกs comunes. Tambiรฉn se puede ser mรกs especรญfico yย escribirย โgit help initโ o cualquier otro comando.
- git status.ย Comprueba el estado de tu repositorio. Es muy รบtil para saber que cambios estรกn pendientes de commit, en que rama se estรก trabajando y otros detalles.
- git add.ย Esto no agrega nuevos archivos a tu repositorio. Lo que hace es dejarlos en un estado que podrรญamos definir โpendiente de subirโ. Digamos que cuando queremos subir algo a nuestro repositorio, primero harรญamos unย git add, luego harรญamos elย commitcorrespondiente para indicar que va a haber cambios y por รบltimo harรญamos unย pushpara subir los archivos.
- git commit.ย Comando mรกs importante de Git. Despuรฉs de realizar cualquier tipo de cambio, es decir, de hacer un git add, con este comando se le indica a Git que guarde una ยซFotografรญaยปย del repositorio. Por lo general, el comando es git commit -m โMensaje significativo del cambioโ. -m indica que la secciรณn siguiente de la orden debe ser leรญdo como un mensaje.
- git branch name_branch.ย Este comando te permitirรก construir una nueva rama.
- git branch. Este comando te permite ver las ramas existentes y en cual te encuentras.
- git checkout name_branch. Permite moverte de una rama a otra.
- git merge.ย Cuando hayas terminado de trabajar en una rama, puede fusionar los cambios con otra o con la rama principal, que es visible para todos los colaboradores.
- git push.ย Si estas trabajando en local, y quieres subir los cambios a GitHub, tendrรกs que โempujarโ los cambios a GitHub con este comando. Previamente habrรกs hecho unย git addย y unย git commit -m โnombreย delย cambioโ.
- gitย pull.ย Si estรกs trabajando en local y deseas obtener la versiรณn mรกs actualizada del repo que se encuentra en GitHub, debes โtirarโ los cambios desde GitHub con este comando.
flujo de trabajo
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
Puedes registrar cambios (aรฑadirlos al Index) usando
git add <filename>
git add .
Este es el primer paso en el flujo de trabajo bรกsico. Para hacer commit a estos cambios usa
git commit -m "Commit message"
Ahora el archivo esta incluรญdo en el HEAD, pero aรบn no en tu repositorio remoto.
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.
clientes grรกficos
- GitX (L) (OSX, open source)
- Tower (OSX)
- Source Tree (OSX, free)
- GitHub for Mac (OSX, free)
- GitBox (OSX)
guรญas
Una recomendacion vean esta pagina