para gestionar las ediciones o revisiones que se realizan sobre un producto. ▪ No aplica sólo al Software (documentos, fotografías…) ▪ Existen muchas herramientas: CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar, Plastic SCM, Git, SCCS, Mercurial, Perforce, Fossil SCM, Team Foundation Server. ▪ Modelo centralizado vs Modelo distribuido 5
y de cambios) ▪ Trabajo colaborativo ▪ Volver a una versión previa ▪ Trabajo paralelo en diferentes ramas (Ocultar features específicas…) ▪ Facilidad para compartir código (Sirve de CV) ▪ Despliegue automático ▪ Integración de otras herramientas que potencian el desarrollo 6
con Git no hay que salir al servidor Sólo añade información No borra contenidos anteriores, podemos trabajar sin miedo Tiene integridad No se pueden cambiar archivos sin que Git lo sepa Tiene tres estados Working directory, staging directory y Git directory (repository) 11
▪ cd Te lleva a un directorio. Ej: cd taller-git ▪ cd .. Desde el directorio actual, va al directorio padre ▪ ls Lista el contenido del directorio. Ej: ls ▪ touch Crea archivos. Ej: touch readme.md ▪ cat Muestra el contenido de un archivo 13
git add index.html ▪ git add . (añade todos los archivos del working directory) ▪ git status - Nuestro estado 23 Working directory Staging area Repository
cd taller-git-php-sevilla - touch index.html - Añadimos texto en index.html 2º Inicializar git en el proyecto - git init 3 º Añadir a staging area - git add index.html o git add . 4º Guardar archivos en el repositorio - git commit -m “proyecto inicializado” Añade varios ficheros más y repite el ciclo. Ejemplo: - about.html - contact.html NOTA Usa git status después de cada operación para ver su estado. 25
2º Nos posicionamos en ella - git checkout develop 3 º Creamos un archivo - touch readme.md - Editamos el archivo > Taller de Git & Github - git add . - git commit -m “readme añadido” 4º Nos posicionamos en la rama master - git checkout master Vemos que el archivo creado en el paso anterior no está en esta rama. 5º Fusion develop a master Ejemplo: - git merge develop NOTA Usa git status, git log para ir viendo el progreso 39
develop 2º Creamos un directorio cache - mkdir cache - ls - cd cache - touch file1.txt - cd .. - git status 3 º Creamos .gitignore - touch .gitignore - Editamos el archivo /cache - git status - git add . - git commit -m “git ignore añadido” 4º Nos posicionamos en la rama master - git checkout master Vemos el directorio /cache pero al subir el repositorio al repositorio remoto no subirá los documentos o archivos de .gitignore 5º Fusion develop a master Ejemplo: - git merge develop NOTA Usa git status, git log para ir viendo el progreso 42
alojar proyectos ▪ Repositorios públicos y privados ▪ Alternativas: GForge, GNU Savannah, Google Code, Launchpad, SourceForge, Bitbucket, Gitorious, Assembla, GitLab ▪ Nació en 2008 y fue adquirida por Microsoft en 2018 por 7.500 millones de $ 44
remoto Ej: Si estamos en la rama master - git pull baja los cambios del repositorio remoto al tu rama master. También podemos usar git pull origin master, origin es el nombre por defecto del repo remoto
y deja los datos en stage area ▪ git reset --mixed commit Elimina el commit y deja los datos en el working directory ▪ git reset --hard commit Borra todo excepto los archivos nuevos creados (git solo borra los datos añadidos pero no puede borrar archivos del directorio) 62