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)
|
# 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
|
## 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`)
|
- `issue_number`: numero de 4 digitos (e.g. `0020`)
|
||||||
- `slug`: nombre corto separado por guiones (e.g. `hot-reload`)
|
- `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
|
## Flujo obligatorio
|
||||||
|
|
||||||
1. Verificar que estamos en master y limpio:
|
1. Verificar que estamos en master y limpio:
|
||||||
@@ -34,22 +42,29 @@ git pull --rebase
|
|||||||
|
|
||||||
3. Crear la rama y cambiar a ella:
|
3. Crear la rama y cambiar a ella:
|
||||||
|
|
||||||
|
**Para issues:**
|
||||||
```bash
|
```bash
|
||||||
git checkout -b issue/<issue_number>-<slug>
|
git checkout -b issue/<issue_number>-<slug>
|
||||||
```
|
```
|
||||||
|
|
||||||
Ejemplo: `git checkout -b issue/0013-hot-reload`
|
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:
|
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.
|
Puedes empezar a trabajar. Cuando termines, usa `/git-push` para integrar a master.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Convenciones
|
## 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
|
- **Ramas cortas**: idealmente horas, no dias
|
||||||
- **Una rama por issue**: no mezclar issues en la misma rama
|
- **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
|
- **Nunca pushear la rama al remoto**: el push se hace desde master despues del merge
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Command: git push
|
# 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
|
## Flujo obligatorio
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ git branch --show-current
|
|||||||
git status --short
|
git status --short
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Si estamos en una rama `issue/*`
|
#### Si estamos en una rama `issue/*` o `quick/*`
|
||||||
|
|
||||||
Continuar directamente al paso 2.
|
Continuar directamente al paso 2.
|
||||||
|
|
||||||
@@ -19,16 +19,21 @@ Continuar directamente al paso 2.
|
|||||||
|
|
||||||
Crear una rama automaticamente antes de continuar:
|
Crear una rama automaticamente antes de continuar:
|
||||||
|
|
||||||
1. Preguntar al usuario un nombre descriptivo si no es obvio por los cambios.
|
1. Preguntar al usuario: **¿Este cambio esta asociado a un issue existente?**
|
||||||
2. Determinar el siguiente numero de issue disponible (buscar en `dev/issues/` y `dev/issues/completed/`).
|
2. **Si es un issue**: pedir el numero y slug, crear rama `issue/<NNNN>-<slug>`.
|
||||||
3. Crear la rama:
|
3. **Si NO es un issue**: pedir un slug descriptivo, crear rama `quick/<slug>`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Para issues:
|
||||||
git checkout -b issue/<NNNN>-<slug>
|
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.
|
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
|
#### Si estamos en `master` sin cambios
|
||||||
|
|
||||||
**STOP**: no hay nada que publicar.
|
**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
|
```bash
|
||||||
git checkout master
|
git checkout master
|
||||||
git pull --rebase
|
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:
|
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
|
- 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:
|
Si hay conflictos durante el merge:
|
||||||
1. Resolver los conflictos
|
1. Resolver los conflictos
|
||||||
2. `git add` los archivos resueltos
|
2. `git add` los archivos resueltos
|
||||||
@@ -107,13 +116,13 @@ git push
|
|||||||
### 7. Limpiar rama local
|
### 7. Limpiar rama local
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git branch -d issue/<NNNN>-<slug>
|
git branch -d <rama>
|
||||||
```
|
```
|
||||||
|
|
||||||
### 8. Confirmar al usuario
|
### 8. Confirmar al usuario
|
||||||
|
|
||||||
```
|
```
|
||||||
Rama `issue/<NNNN>-<slug>` integrada a master y publicada.
|
Rama `<rama>` integrada a master y publicada.
|
||||||
Rama local eliminada.
|
Rama local eliminada.
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -138,7 +147,7 @@ Rama local eliminada.
|
|||||||
|
|
||||||
## Checklist rapido
|
## 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.
|
- [ ] Se separaron cambios distintos en commits diferentes.
|
||||||
- [ ] Cada commit tiene descripcion larga en espanol.
|
- [ ] Cada commit tiene descripcion larga en espanol.
|
||||||
- [ ] Tests ejecutados y pasando (o no aplican).
|
- [ ] Tests ejecutados y pasando (o no aplican).
|
||||||
|
|||||||
Reference in New Issue
Block a user