Control de Versiones Pruebas y Metodologias Flashcards
Control de versiones centralizado
- CVS
- Subversión (SVN) –> TortoiseSVN
- TFS / SourceSafe
Control de versiones Distribuido
- Git
- Mercurial
- Bazaar
- Dares
- BtKeeper
Caracteristicas de GIT
- Tiene dos repositorios, uno central y uno local. La mayor parte del trabajo se realiza en local.
- Soporte avanzado de ramas y mezclas
- main/master
- fix-1079 –> creado por Jira para resolver una incidencia. Correctivo
- feature-5588 –> creado para agregar una caracteristica nueva. Evolutivo
- develop –> rama de desarrollo para todos los desarrolladores.
- release –> versiones entregables
- Compatible con HTTP(S) y SSH
- Uso de criptografía (SHA) sobre los objects–>
- tree
- blob
- commit
- tag
Arquitectura de GIT
- Working tree –> Local tuyo
- Staging Area –> Local git
- Local repository –> Local git
- Remote repository –> Remoto git
Iremos pasando por cada una de las áreas hasta llegar a subirlo definitivamente en
Crear repositorio en Git
git init
nos crea el directorio oculto ‘.git’ y nuestros working tree y staging area en local.
git status
- git status
Nos muestra el estado actual del repositorio, si tenemos cosas nuevas que no han subido al staging o a local repository
git add < fichero >
- git add < fichero >
Añade los ficheros al Staging Area
git commit
- git commit -m “mensaje”
Añade los ficheros que están en Staging Area con cambios al Local Repository
Para que sirve el fichero .gitignore
Fichero donde metemos los patrones de los ficheros que queremos excluir de las subidas al repositorio.
Ej.: *.class
git log
- git log [–all –decorate –oneline –graph –pretty]
Muestra el historial de commits
git branch
- git branch < nombre_rama >
Crea una nueva rama dentro del proyecto.
NOTA: para crear rama y moverte a ella directamente git checkout -b < nombre_rama >
git checkout
- git chechout < nombre_rama >
Se mueve a la rama que indiquemos.
NOTA: para crear rama y moverte a ella directamente git checkout -b < nombre_rama >
git tag
- git tag -a < nombre del tag > –> Crea un tag
- git tag –> Lista las etiquetas creadas
Etiqueta la versión de la rama en ese momento de lanzar el comando.
git merge
- git merge –> Para fusionar ramas
git rebase
- git rebase
Alinea los commit de las ramas
git reset
- git reset [–hard][–soft][–mixed]
- Hard –> Se elimina el commit de la historia TOTALMENTE
- Mixed –> Se elimina el commit de la historia pero los cambios se llevan al Working Area
- Soft –> Se elimina el commit de la historia pero los cambios se llevan a Staging Area
Origen siempre los commit
git clone
- git clone < url remota >
Clona un proyecto en un Repo Remoto en tu Repo Local / Working Area
git pull
- git pull
Descarga los cambios la Repo Local y al Working Area
git push
- git push .
Sube al Repositorio Remoto los cambios que hay en Repositorio Local
git fetch
- git fetch
Te baja a tu Local Repository pero no a tu Working area
Productos GIT
- GitHub
- GitLab
- Bitbucket
En cuanto al producto GitHub
- Fork –> flujo colaborativo de GitHub
- Pull Request –> De algo que ya has modificado, pides que se valide y se integre pero no lo hace directamente
Herramientas de integración continua
- Jenkins
- Travis CI
- Circle CI
- TeamCity
- CodeShip
- Bamboo
NOTA: concepto de pipelines
NOTA: La integración continua (CI) se refiere a la práctica de integrar de forma automática y frecuente los cambios de código en un repositorio de código fuente compartido. La entrega y/o implementación continua (CD) es un proceso de dos partes que se refiere a la integración, prueba y entrega de los cambios de código.
Plataformas de despliegue
- Heroku (PaaS)
- Digital Ocean (IaaS)
- AWS