Saltar al contenido
SDETRole
SDETRole

Aprender / Hoja de referencia

Hoja de referencia de Git para testers

Los comandos de Git que necesita un tester para trabajar en un framework de pruebas junto a los desarrolladores: crear ramas, hacer commits, mantenerse al día con main, deshacer errores sin perder trabajo y encontrar el commit que introdujo un bug. Se señalan los comandos que descartan trabajo.

Revisada con Git 2.40+

Configuración

TareaCódigo
Tu identidad
git config --global user.name "Mei Lin"
git config --global user.email "mei@example.com"
Nombre de la rama por defecto git config --global init.defaultBranch main
Clonar un repositorio git clone https://github.com/org/tests.git
Que pull haga rebase por defecto git config --global pull.rebase true

Trabajo diario

TareaCódigo
¿Qué ha cambiado? git status
Rama nueva desde donde estás git switch -c fix/login-flaky-wait
Añadir archivos al stage git add tests/login.spec.ts
Añadir partes de un archivo git add -p
Commit git commit -m "Wait for login response instead of sleep"
Subir una rama nueva git push -u origin fix/login-flaky-wait
Traer los últimos cambios git pull
Cambiar de rama git switch main

Inspeccionar

TareaCódigo
Historial compacto git log --oneline --graph --decorate -20
Historial de un archivo git log --follow -p -- tests/login.spec.ts
Cambios sin añadir al stage git diff
Cambios en el stage git diff --staged
Tu rama frente a main git diff main...HEAD
Un commit git show 3f2a9c1
Quién cambió estas líneas git blame -L 20,40 tests/login.spec.ts
Todas las ramas git branch -a

Mantenerse al día con main

TareaCódigo
Descargar sin cambiar archivos git fetch origin
Reaplicar tus commits sobre main git rebase origin/main
O hacer merge de main en tu rama git merge origin/main
Después de resolver un conflicto git add <file> then git rebase --continue
Abandonar el rebase git rebase --abort
Subir con seguridad una rama rebasada git push --force-with-lease
Copiar un commit a esta rama git cherry-pick 3f2a9c1

Haz rebase solo de ramas que sean tuyas. --force-with-lease se niega a sobrescribir commits que haya subido otra persona.

Deshacer

SituaciónComando
Descartar los cambios de un archivo (se pierden) git restore tests/login.spec.ts
Sacar un archivo del stage, conservando los cambios git restore --staged tests/login.spec.ts
Corregir el mensaje del último commit o añadir un archivo git commit --amend
Deshacer el último commit, dejando los cambios en el stage git reset --soft HEAD~1
Deshacer un commit ya subido (añade un commit nuevo) git revert 3f2a9c1
Tirar todos los cambios locales (se pierden) git reset --hard HEAD
Encontrar un commit "perdido" git reflog

En ramas compartidas, usa revert. reset y amend reescriben el historial y obligan a todos los demás a arreglar su copia.

Aparcar trabajo

TareaCódigo
Guardar cambios en el stash git stash push -m "half-done locator refactor"
Incluir archivos sin seguimiento git stash push -u
Listar los stashes git stash list
Reaplicar y eliminar el último git stash pop

Encontrar el commit que lo rompió

TareaCódigo
Empezar git bisect start
Marcar el commit actual como malo git bisect bad
Marcar un commit que se sabe bueno git bisect good v2.3.0
Que un test decida en cada paso git bisect run npx playwright test tests/checkout.spec.ts
Terminar y volver git bisect reset

bisect run trata el código de salida 0 como bueno y del 1 al 127 como malo (125 significa saltar este commit).

Practica y profundiza

Más hojas de referencia

Escribe para buscar en todo SDETRole.

Búsqueda de texto completo con Pagefind · se ejecuta en tu navegador Abrir la página de búsqueda →