maneras de obtener un repositorio Git: ◦ Ir a un directorio o proyecto local que no está bajo un sistema de control de versiones y convertirlo en un repositorio Git con git init, o ◦ Clonar un repositorio de cualquier lugar usando git clone.
$ git clone http://github.com/jflavio1/Wificonnector.git . • Al crear un repositorio, se crea una carpeta .git oculta. Si la borras, se pierde el tracking que mantiene Git.
archivo1.txt • Añadiendo un archivo al control de versiones • Quitando un archivo del control de versiones $ git rm --cached archivo1.txt • Verificando el estado de mi archivo $ git status $ git status -s ?? nuevos archivos sin trackear A archivo añadido a staging M archivo modificado
$ git reset HEAD . $ git reset HEAD miarchivo2.txt • Quitar cambios de staging y volver a la cabecera HEAD o último commit dejando archivos en el Working directory.
git revert commit-hash • Quitar cambios de un commit específico Esto creará un nuevo commit que contendrá el cambio del revert. Es decir, un cambio que deshace un cambio.
Hay 4 formas principales de deshacer cambios usando git reset ◦ git reset --soft ▪ elimina commits posteriores al señalado ▪ conserva cambios en staging ◦ git reset --mixed ▪ elimina commits posteriores al señalado ▪ quita los cambios de staging y los deja en el working directory ◦ git reset --keep ▪ elimina commit posteriores al señalado y los archivos afectados ▪ lleva todos los archivos de staging al working directory y mantiene los existentes que están sin trackear ◦ git reset --hard ▪ elimina commit posteriores al señalado, los archivos afectados, deshace cambios en staging y en el working directory
Crear rama a partir de la actual • Crear rama a partir de la actual y entrar en ella $ git checkout -b rama2 • Ver lista de ramas $ git branch $ git branch -a
branch -d rama2 • Eliminar una rama • Forzar eliminar rama así no se haya hecho merge y se pierdan sus cambios $ git branch -D rama2 • Cambiar de nombre a la rama $ git branch -m nombreActual nombreNuevo
https://github.com/jflavio1/GitPractice.git • Clonando un repositorio en carpeta nueva • Añadir un origen remoto a un proyecto git existente existente $ git remote add miOrigen2 https://github.com/jflavio1/GitPractice.git • Ver lista de repositorios remotos $ git remote -v
$ git fetch miOrigen $ git fetch miOrigen branchUno • Traer cambios de un origen • Traer y mezclar cambios de un origen a mi branch local actual $ git pull miOrigin branchUno $ git push miOrigen miBranch • Subir cambios confirmados
git stash • Guardar cambios de archivos en el working directory y staging sin tener que confirmarlos • Ver lista de cambios sin guardar $ git stash list $ git stash pop <stash-id> • Obtener los cambios guardados y eliminarlos de la lista • Sólo obtener los cambios guardados $ git stash apply <stash-id>
• Todas las diferencias entre HEAD y el ahora (working directory y staging) • Diferencias entre un commit o HEAD y cambios añadidos (staging area) $ git diff --cached <commit-hash> $ git diff <commit-hash1> <commit-hash2> • Ver cambios entre dos commits arbitrarios $ git diff --name-only $ git diff --name-status $ git diff --no-rename $ git diff --check • Ver información específica entre cambios
crear para cuando se completa un hito, un sprint, una versión del producto potencialmente instalable, cuando se hace paso a QA, etc. $ git tag v1.0.0 $ git tag list $ git tag push miOrigen v1.0.0
promedio, no más de 250 a 300 líneas de código. • Desarmables: de ser posible, se debe dividir el PR en otros más pequeños. • Responsabilidad única: el PR debe cambiar o arreglar una cosa en específico. • Título auto-explicable: el título debería explicar (en resumen) lo que hace el PR. • Descripción: Detallar QUÉ se ha cambiado, POR QUÉ se ha cambiado y CÓMO se ha cambiado. Además de los links a Jira, fechas, etc.
un grupo de issues a un Hito en particular para tener conocimiento de su avance. Puedes agrupar por una versión que se quiera sacar, un fix grande que requiera de varios cambios, un sprint X, etc.