Desde su nacimiento en 2005, Git ha evolucionado y madurado para ser fácil de usar, es tremendamente rápido, completamente distribuido, muy eficiente con grandes proyectos como el núcleo de Linux (manejo eficiente de velocidad y tamaño de los datos) y tiene un increíble sistema de ramificación (branching) para desarrollo no lineal (miles de ramas paralelas).
Cada desarrollador trabaja de forma independiente en su propio repositorio y sincroniza el repositorio con otro cuando lo necesita.
Uno de los repositorios puede utilizarse como repositorio de referencia.
Tutorial Web y eBook: http://git-scm.com/book/es
El directorio del proyecto
Ofrece un enfoque social y colaborativo: red social para compartir proyectos software.
Los repositorios públicos son gratis, los privados de pago: cuenta con más de 20M (Linux, Eclipse, jQuery, RoR, etc)
Gestión de organizaciones y proyectos software:
GITHUB App es una herramienta gráfica muy eficaz para gestionar proyectos git localmente en el PC. Solo está soportada para MAC y para Windows.
Descargar (e instalar) GITHUB para Windows: https://windows.github.com
Extracto del curso "Desarrollo de servicios en la nube con HTML5, Javascript y node.js" impartido a través de la plataforma online MiríadaX.
El curso incluye también el despliegue de servicios de servidor en la nube e introduce técnicas básicas de ingeniería software.
GIT
GIT es un gestor de proyectos software desarrollado por Linus Torwalds para Linux y diseñado para desarrollo distribuido.Cada desarrollador trabaja de forma independiente en su propio repositorio y sincroniza el repositorio con otro cuando lo necesita.
Uno de los repositorios puede utilizarse como repositorio de referencia.
Tutorial Web y eBook: http://git-scm.com/book/es
Proyecto, directorio y versión
El directorio del proyecto
- Un proyecto se suele gestionar en un directorio (o carpeta): el directorio contiene todos los ficheros del proyecto.
- Explorador de ficheros: muestra el contenido de un directorio gráficamente.
Hacer clic sobre un objetos gráfico ejecuta un comando predefinido. - Terminal de comandos: ejecuta comandos en directorio de trabajo.
El directorio de trabajo asociado es la base de las rutas (paths) relativas y los objetos se identifican con rutas (paths) absolutas o relativas.
- Historia de un proyecto: es la historia de cambios en el directorio del proyecto.
- Versión (Commit): punto de la historia del proyecto que puede ser restaurado (reconstruido).
- Se debe consolidar versión en los puntos del desarrollo que deseemos poder volver atrás en el futuro.
- Versiones frecuentes facilitan el mantenimiento y la legibilidad de un programa.
- La rama principal del proyecto se denomina master: es la historia de cambios en el directorio del proyecto.
Una rama suele realizar un desarrollo separado. - Las ramas se suelen integrar en master, una vez acabadas.
- Un repositorio git es un "directorio donde gestionar versiones".
Se puede guardar o restaurar versiones. Las versiones se guardan en el directorio oculto .git - Versión (commit): directorio (proyecto) congelado en un momento determinado, incluyendo todos sus ficheros y subdirectorios.
- Cada versión generada por GIT se identifica con un número aleatorio único (clave SHA1).
Ejemplo: 973751d21c4a71f13a2e729ccf77f3a960885682. - GIT permite equipos de desarrollo distribuidos: los repositorios se pueden clonar sin problemas (ninguna versión en ningún otro repositorio utilizará el mismo identificador).
- GIT esta pensado para trabajar en grupo: toda operación va firmada por su autor.
Al configurar GIT se da el nombre y email del autor. - Un usuario puede copiar o clonar otro repositorio y continuar el desarrollo por su cuenta sobre la copia.
- Dos repositorios pueden volver a sincronizarse.
Configurar GIT
# El comando "git config" permite manejar opciones de configuración. # Las opciones configuradas pueden afectar a distintos ámbitos (proyectos): # - Para todos los proyectos en el sistema. # Usar opción --system. La configuración se guarda en /etc/gitconfig # - Para todos los proyectos del usuario. # Usar opción --global. La configuración se guarda en ~/.gitconfig # - Sólo para el proyecto actual. # Sin opción. La configuración se guarda en .git/config # Consultar todas las opciones existentes: git help config # Para firmar correctamente contribuciones y versiones debemos configurar: $ git config --global user.name "Pedro Ramirez" $ git config --global user.email pramirez@dit.upm.es # Consultar el valor de todas las opciones configuradas: $ git config --list user.name=Pedro Ramirez user.email=pramirez@dit.upm.es color.ui=true # Consultar el valor de una opción: $ git config user.name Pedro Ramirez
Ayuda
# Ayuda en línea de comandos: $ git help # Muestra lista con los comandos existentes $ git help comando # Ayuda sobre comando especificado $git help add # Ayuda sobre el comando add $ git add --help # Equivalente a anterior $ man git-add # Equivalente a anterior # Manual de referencia, chuletas, videos, otros enlaces: http://git-scm.com/doc http://ndpsoftware.com/git-cheatsheet.html https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf
GITHUB
GITHUB es el portal de repositorios GIT: https://github.comOfrece un enfoque social y colaborativo: red social para compartir proyectos software.
Los repositorios públicos son gratis, los privados de pago: cuenta con más de 20M (Linux, Eclipse, jQuery, RoR, etc)
Gestión de organizaciones y proyectos software:
- Soporta equipos de desarrollo distribuidos, abiertos o privados.
- Uso y acceso muy sencillo a versiones, tareas, bugs, ...
- Herramientas para desktop (MAC y Windows)
- Incluye muy buenos tutoriales.
GITHUB: registro y ayuda
# Lo primero es crear una cuenta y una vez creada, debemos seguir sus instrucciones para: # 1) Configurar y conectar con GITHUB nuestro GIT local: https://help.github.com/articles/set-up-git/ # 2) Instrucciones para crear y clonar repositorios: https://help.github.com/articles/create-a-repo # 3) Instrucciones para colaborar en proyectos software distribuidos: https://help.github.com/articles/be-social/
Subir un repositorio local a GITHUB
# Para subir un repositorio local a GITHUB debemos: # 1) Crear un repositorio vacío en GITHUB con New Repository # 2) Configurar repo. remoto origin con repositorio vacío $ git remote add origin https://github.com/pepe/proy1 # 3) Hacer push de rama master local a origin $ git push -u origin master # -u "tracking reference"
Fork: Copiar un proyecto en GITHUB
# Fork permite copiar un repositorio (proyecto) en nuestra cuenta en GITHUB # # -> Una vez copiado (clonado) tenemos acceso a él y podemos evolucionarlo
Contribuir a un proyecto GITHUB
# La forma habitual de contribuir a un proyecto en GITHUB es seguir estos 4 pasos: # 1) Crear una copia del repositorio original en GITHUB con "Fork" en la cuenta propia # 2) Clonar la rama creada en nuestra cuenta en nuestro ordenador local p1> git clone https://github.com/pepe/proy1 # 3) Modificar el proyecto local, realizar commit y "push" a nuestra copia en GITHUB p1> ........... p1> git add ... p1> git commit -m '.........' p1> git push origin master # 4) Hacer "Pull Request" desde nuestra cuenta en GITHUB pidiendo al administrador del # repositorio original que introduzca nuestros cambios
GITHUB App for MAC & for Windows
GITHUB App es una herramienta gráfica muy eficaz para gestionar proyectos git localmente en el PC. Solo está soportada para MAC y para Windows.
- Permite ver y gestionar el directorio de trabajo del proyecto y los cambios realizados,
- Ver las versiones de un proyecto (historia) y los cambios realizados en cada versión.
- Ver y gestionar las ramas de un proyecto y su sincronización con repositorios remotos.
Descargar (e instalar) GITHUB para Windows: https://windows.github.com
Extracto del curso "Desarrollo de servicios en la nube con HTML5, Javascript y node.js" impartido a través de la plataforma online MiríadaX.
El curso incluye también el despliegue de servicios de servidor en la nube e introduce técnicas básicas de ingeniería software.