merge: quick/quick-branch-support — soporte de ramas quick/ para cambios sin issue
This commit is contained in:
@@ -1,14 +1,22 @@
|
||||
# Command: git branch (TBD)
|
||||
|
||||
Crea una rama de trabajo para un issue. **Nunca trabajar directamente en master.**
|
||||
Crea una rama de trabajo. **Nunca trabajar directamente en master.**
|
||||
|
||||
Soporta dos tipos de rama:
|
||||
- `issue/<NNNN>-<slug>` — para implementar un issue existente de `dev/issues/`
|
||||
- `quick/<slug>` — para cambios pequeños sin issue asociado (fixes, config, docs, etc.)
|
||||
|
||||
## Inputs
|
||||
|
||||
Se necesita el numero del issue y el slug. Si no se proporcionan, preguntar.
|
||||
Preguntar al usuario si el cambio esta asociado a un issue o no.
|
||||
|
||||
### Si es un issue:
|
||||
- `issue_number`: numero de 4 digitos (e.g. `0020`)
|
||||
- `slug`: nombre corto separado por guiones (e.g. `hot-reload`)
|
||||
|
||||
### Si es un cambio rapido (sin issue):
|
||||
- `slug`: nombre corto descriptivo separado por guiones (e.g. `fix-typo-readme`)
|
||||
|
||||
## Flujo obligatorio
|
||||
|
||||
1. Verificar que estamos en master y limpio:
|
||||
@@ -34,22 +42,29 @@ git pull --rebase
|
||||
|
||||
3. Crear la rama y cambiar a ella:
|
||||
|
||||
**Para issues:**
|
||||
```bash
|
||||
git checkout -b issue/<issue_number>-<slug>
|
||||
```
|
||||
|
||||
Ejemplo: `git checkout -b issue/0013-hot-reload`
|
||||
|
||||
**Para cambios rapidos:**
|
||||
```bash
|
||||
git checkout -b quick/<slug>
|
||||
```
|
||||
Ejemplo: `git checkout -b quick/fix-typo-readme`
|
||||
|
||||
4. Confirmar al usuario:
|
||||
|
||||
```
|
||||
Rama `issue/<issue_number>-<slug>` creada desde master actualizado.
|
||||
Rama `<nombre-rama>` creada desde master actualizado.
|
||||
Puedes empezar a trabajar. Cuando termines, usa `/git-push` para integrar a master.
|
||||
```
|
||||
|
||||
## Convenciones
|
||||
|
||||
- **Formato de rama**: `issue/<NNNN>-<slug>` (siempre 4 digitos)
|
||||
- **Formato de rama issue**: `issue/<NNNN>-<slug>` (siempre 4 digitos)
|
||||
- **Formato de rama quick**: `quick/<slug>` (sin numero)
|
||||
- **Ramas cortas**: idealmente horas, no dias
|
||||
- **Una rama por issue**: no mezclar issues en la misma rama
|
||||
- **Nunca pushear la rama al remoto**: el push se hace desde master despues del merge
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Command: git push
|
||||
|
||||
Integra cambios a master y publica. Soporta dos flujos segun la rama actual.
|
||||
Integra cambios a master y publica. Soporta ramas `issue/*` y `quick/*`.
|
||||
|
||||
## Flujo obligatorio
|
||||
|
||||
@@ -11,7 +11,7 @@ git branch --show-current
|
||||
git status --short
|
||||
```
|
||||
|
||||
#### Si estamos en una rama `issue/*`
|
||||
#### Si estamos en una rama `issue/*` o `quick/*`
|
||||
|
||||
Continuar directamente al paso 2.
|
||||
|
||||
@@ -19,16 +19,21 @@ Continuar directamente al paso 2.
|
||||
|
||||
Crear una rama automaticamente antes de continuar:
|
||||
|
||||
1. Preguntar al usuario un nombre descriptivo si no es obvio por los cambios.
|
||||
2. Determinar el siguiente numero de issue disponible (buscar en `dev/issues/` y `dev/issues/completed/`).
|
||||
3. Crear la rama:
|
||||
1. Preguntar al usuario: **¿Este cambio esta asociado a un issue existente?**
|
||||
2. **Si es un issue**: pedir el numero y slug, crear rama `issue/<NNNN>-<slug>`.
|
||||
3. **Si NO es un issue**: pedir un slug descriptivo, crear rama `quick/<slug>`.
|
||||
|
||||
```bash
|
||||
# Para issues:
|
||||
git checkout -b issue/<NNNN>-<slug>
|
||||
# Para cambios rapidos:
|
||||
git checkout -b quick/<slug>
|
||||
```
|
||||
|
||||
4. Continuar al paso 2 con los cambios ya en la rama nueva.
|
||||
|
||||
**IMPORTANTE**: No inventar numeros de issue. Solo usar `issue/` si el issue existe en `dev/issues/`.
|
||||
|
||||
#### Si estamos en `master` sin cambios
|
||||
|
||||
**STOP**: no hay nada que publicar.
|
||||
@@ -86,13 +91,17 @@ Si el issue es autocontenido (se completa en esta rama), no necesita flag. Salta
|
||||
```bash
|
||||
git checkout master
|
||||
git pull --rebase
|
||||
git merge --no-ff issue/<NNNN>-<slug> -m "merge: issue/<NNNN>-<slug> — <titulo breve>"
|
||||
git merge --no-ff <rama> -m "merge: <rama> — <titulo breve>"
|
||||
```
|
||||
|
||||
El merge commit debe tener formato:
|
||||
- Titulo: `merge: issue/<NNNN>-<slug> — <descripcion corta>`
|
||||
- Titulo: `merge: <rama> — <descripcion corta>`
|
||||
- Cuerpo (opcional): resumen de lo que entra
|
||||
|
||||
Ejemplos:
|
||||
- `merge: issue/0021-threads-default-config — habilitar threads en agentes`
|
||||
- `merge: quick/fix-typo-readme — corregir typo en README`
|
||||
|
||||
Si hay conflictos durante el merge:
|
||||
1. Resolver los conflictos
|
||||
2. `git add` los archivos resueltos
|
||||
@@ -107,13 +116,13 @@ git push
|
||||
### 7. Limpiar rama local
|
||||
|
||||
```bash
|
||||
git branch -d issue/<NNNN>-<slug>
|
||||
git branch -d <rama>
|
||||
```
|
||||
|
||||
### 8. Confirmar al usuario
|
||||
|
||||
```
|
||||
Rama `issue/<NNNN>-<slug>` integrada a master y publicada.
|
||||
Rama `<rama>` integrada a master y publicada.
|
||||
Rama local eliminada.
|
||||
```
|
||||
|
||||
@@ -138,7 +147,7 @@ Rama local eliminada.
|
||||
|
||||
## Checklist rapido
|
||||
|
||||
- [ ] Todos los cambios estan commiteados en una rama `issue/*`.
|
||||
- [ ] Todos los cambios estan commiteados en una rama `issue/*` o `quick/*`.
|
||||
- [ ] Se separaron cambios distintos en commits diferentes.
|
||||
- [ ] Cada commit tiene descripcion larga en espanol.
|
||||
- [ ] Tests ejecutados y pasando (o no aplican).
|
||||
|
||||
Reference in New Issue
Block a user