Harjoitus 22: Worktreejen yhdistäminen¶
Tavoite
Opi validaatiomaan ja yhdistämään erilliset worktreet turvallisesti,
ennen kuin koodi päätyy main-haaraan.
Taustaa¶
Kun olet tehnyt työmää eri worktreissa:
✅ Sinun on testattu jokainen muutos erikseen
✅ Sinun on tarkistettava että diff on oikea
✅ Mergeä vasta kun kaikki on hyväksytty
Tämä tarkoittaa usein myös:
- Checkata kaikki työkalu-tulokset
- Aja testit jokaisessa worktreessä
- Merge vasta kun kaikki on vihreänä
Tehtävä¶
Sinulla on kaksi valmista worktreetta:
fix-delete-button— korjaa delete-painikkeen käyttäytymisenfeature-dark-mode— lisää dark mode -tuen
Miten yhdistät ne turvallisesti?
Ratkaisu¶
Vaihe 1: Siirry ensimmäiseen worktreeon¶
cd .claude/worktrees/fix-delete-button
Vaihe 2: Tarkista diff¶
git diff main
Tuloste:
diff --git a/src/components/Button.jsx b/src/components/Button.jsx
index abc..def 100644
--- a/src/components/Button.jsx
+++ b/src/components/Button.jsx
@@ -24,7 +24,7 @@
- onClick={this.handleDelete}
+ onClick={event => {
+ event.stopPropagation();
+ this.handleDelete();
+ }}
Vaihe 3: Aja testit¶
npm test
Vaihe 4: Pushaa ja merge¶
git add .
git commit -m "Fix: Stop event bubbling on delete button"
git push origin fix-delete-button
Sen jälkeen avaa PR GitHubissa tai paikallisesti:
git checkout main
git pull
git merge fix-delete-button
git branch -d fix-delete-button # poista haaran paikallisesti
Vaihe 5: Toista toiselle worktreelle¶
Toista sama prosessi feature-dark-mode-worktreeille.
Miten päähalmittäminen toimii?¶
graph LR
A[main] --> B[worktree: fix-delete-button]
A --> C[worktree: feature-dark-mode]
B --> D[Validoitu]
C --> E[Validoitu]
D --> F[Merge main]
E --> G[Merge main]
Tärkeitä huomioita
- Merge aina vasta kun kaikki testit ovat vihreänä
- Käytä review-gatea (sub-agentti) ennen mergeä
- Älä koskaan mergeä suoraan production-haaraan ilman hyväksyntää
Lähde: Esimerkki 22 [S1], [S19]