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 el despliegue de servicios de servidor en la nube e introduce técnicas básicas de ingeniería software.
Jose Maria Acuña Morgado - Desarrollador Web