# Git worktree στο Claude Code: παράλληλες συνεδρίες

> Πώς να χρησιμοποιήσετε τα --worktree, .worktreeinclude, worktree.baseRef και την απομόνωση υποπρακτόρων. Διαφορές από τα branches, εκκαθάριση των worktrees και συνηθισμένα λάθη.

Source: https://ailoot.ai/blog/el/claude-code-git-worktree/
Canonical: https://ailoot.ai/blog/el/claude-code-git-worktree/
Language: el
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-045
Revision: sha256-62aa1deed83ab85a214739d358d4ec5f2e54ab7f12245e069578f6b7eebe870d




[Πρακτικές πληροφορίες για την εργασία με το Ailoot βρίσκονται στην τεκμηρίωση](https://ailoot.ai/docs/).

## Τι είναι το git worktree στο Claude Code

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Ένα Git worktree είναι ένας ξεχωριστός κατάλογος εργασίας για ένα άλλο branch του ίδιου αποθετηρίου. Η εντολή `claude --worktree <name>` δημιουργεί αυτόματα ένα worktree στο `.claude/worktrees/<name>/` και ξεκινά το Claude Code εκεί. Δύο τερματικά → δύο συνεδρίες → διαφορετικά αρχεία στον δίσκο, χωρίς καμία παρεμβολή. Διαθέσιμο έτοιμο στο Claude Code v2.0+, με δυνατότητα διαμόρφωσης μέσω του `.worktreeinclude` για μυστικά και του `worktree.baseRef` για την επιλογή του βασικού branch.

</div>

Η εκκίνηση πολλών agents παράλληλα στον ίδιο φάκελο είναι το βασικό πρόβλημα του vibe-coding με την ταχύτητα του 2026. Οι AI agents γράφουν κώδικα πιο γρήγορα απ’ όσο μπορεί ένας άνθρωπος να παρακολουθεί ποιος αλλάζει τι. Χωρίς απομόνωση αρχείων, η εκκίνηση δύο παράλληλων συνεδριών Claude Code στον ίδιο κατάλογο καταλήγει με τη μία συνεδρία να αντικαθιστά τη δουλειά της άλλης.

Το Git worktree λύνει αυτό το πρόβλημα στο επίπεδο του συστήματος αρχείων. Έχετε έναν κύριο κατάλογο όπου εργάζεστε. Η εντολή `claude --worktree feature-auth` δημιουργεί τον φάκελο `.claude/worktrees/feature-auth/` σε ξεχωριστό branch και ξεκινά εκεί το Claude Code. Τα αρχεία είναι απομονωμένα. Οι αλλαγές σε μία συνεδρία δεν είναι ορατές στην άλλη μέχρι να τις συγχωνεύσετε ρητά.

Η επίσημη τεκμηρίωση της Anthropic το διατυπώνει ως εξής:

<figure>
<blockquote>
<p>Όταν κάθε συνεδρία Claude Code εκτελείται στο δικό της worktree, οι επεξεργασίες σε μία συνεδρία δεν επηρεάζουν ποτέ τα αρχεία σε άλλη. Μπορείτε να αναπτύσσετε μια λειτουργία σε ένα τερματικό και να διορθώνετε ένα σφάλμα σε άλλο.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

Ένα στοιχείο αυτοελέγχου: αν έχετε λάβει ποτέ ένα commit όπου τα μισά αρχεία ήταν δουλειά κάποιου άλλου, χρειάζεστε worktree.

## Πώς διαφέρει το git worktree από ένα κανονικό branch

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Ένα κανονικό `git checkout` αλλάζει το αντίγραφο εργασίας στον ίδιο φάκελο—τα παλιά αρχεία εξαφανίζονται από τον δίσκο μέχρι να επιστρέψετε στο branch. Η εντολή `git worktree add` δημιουργεί έναν **δεύτερο φάκελο** για ένα άλλο branch, δίπλα στον πρώτο. Και τα δύο branch βρίσκονται ταυτόχρονα στον δίσκο· μετακινείστε ανάμεσά τους με ένα απλό `cd`. Στο παρασκήνιο υπάρχει ένα αποθετήριο `.git`, με κοινό ιστορικό και κοινό remote. Απλώς, πολλά αντίγραφα εργασίας.

</div>

Η τυπική ροή εργασίας Git: βρίσκεστε στο branch `main` και εκτελείτε `git checkout feature-x`—το Git αντικαθιστά τα αρχεία του αντιγράφου εργασίας. Μια διεργασία `npm run dev` που εκτελείται χαλάει επειδή το `package.json` άλλαξε κάτω από αυτήν. Αποθηκεύετε προσωρινά τις μη δεσμευμένες αλλαγές σας και περιμένετε να κάνει ξανά ευρετηρίαση το IDE. Επιστρέφετε και όλα αντικαθίστανται ξανά, οπότε πρέπει να κάνετε πάλι stash και pop.

Το Git worktree σάς δίνει άλλη επιλογή: αντί να αλλάζετε branch σε **έναν** φάκελο, δημιουργείτε έναν **δεύτερο** φάκελο για ένα άλλο branch. Η εντολή `git worktree add ../project-feature-x feature-x` δημιουργεί τον κατάλογο `../project-feature-x/` με τα αρχεία από το branch `feature-x`. Το `main` σας παραμένει στον αρχικό φάκελο και ο dev server συνεχίζει να εκτελείται.

| Παράμετρος | Branch `git checkout` | `git worktree add` |
|----|----|----|
| Αρχεία αντιγράφου εργασίας | Αντικαθίστανται | Εμφανίζονται σε νέο φάκελο |
| Παράλληλη εργασία σε δύο branch | Όχι | Ναι |
| Μη δεσμευμένες αλλαγές | Χρειάζεται `git stash` | Δεν χρειάζεται να κάνετε κάτι |
| Ταχύτητα εναλλαγής | Εξαρτάται από το μέγεθος της διαφοράς | Απλώς `cd` |
| Χώρος στον δίσκο | 1× | N× (ένα αντίγραφο των αρχείων ανά branch) |

Παλαιότερα, η λειτουργία worktree στο Claude Code έπρεπε να ρυθμιστεί χειροκίνητα: `git worktree add`, μετά `cd`, έπειτα `claude`—και επανάληψη σε κάθε τερματικό. Η σημαία `--worktree` (επίσης `-w`) τα κάνει και τα τρία με μία εντολή.

## Εκκίνηση της πρώτης παράλληλης συνεδρίας: η σημαία `--worktree`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Η εντολή `claude --worktree feature-auth` δημιουργεί ένα worktree στο `.claude/worktrees/feature-auth/`, δημιουργεί το branch `worktree-feature-auth` από το `origin/HEAD` και ξεκινά το Claude Code ακριβώς εκεί. Χωρίς χειροκίνητο `git worktree add` ή `cd`. Στο διπλανό τερματικό, επαναλάβετε με διαφορετικό όνομα για να έχετε δύο ανεξάρτητες συνεδρίες. Αν παραλείψετε το όνομα (`claude --worktree`), το Claude δημιουργεί ένα τυχαίο, όπως `bright-running-fox`.

</div>

Ελάχιστο παράδειγμα. Ανοίξτε το πρώτο τερματικό στη ρίζα του έργου:

```bash
claude --worktree feature-auth
```

Το Claude Code κάνει τρία πράγματα:

1. Δημιουργεί το `.claude/worktrees/feature-auth/` με ένα στιγμιότυπο του `origin/HEAD` (συνήθως το προεπιλεγμένο branch σας).
2. Δημιουργεί ένα νέο branch `worktree-feature-auth`.
3. Ξεκινά τη συνεδρία σε αυτόν τον φάκελο.

Ανοίξτε ένα δεύτερο τερματικό στον ίδιο φάκελο ρίζας του αποθετηρίου:

```bash
claude --worktree bugfix-123
```

Έτοιμο. Δύο συνεδρίες Claude Code, διαφορετικά αρχεία στον δίσκο, διαφορετικά branch του Git. Αν γράφετε κώδικα αυθεντικοποίησης στην πρώτη και διορθώνετε ένα αποτυχημένο test στη δεύτερη, δεν μπορούν φυσικά να μπουν η μία στον δρόμο της άλλης.

Αν δεν θέλετε να πληκτρολογήσετε όνομα, το Claude θα επινοήσει ένα:

```bash
claude --worktree
# → δημιουργεί κάτι σαν .claude/worktrees/bright-running-fox/
```

Συμβουλή για αρχάριους στο Git: προσθέστε το `.claude/worktrees/` στο `.gitignore`. Διαφορετικά, όταν εκτελείτε `git status` στον κύριο φάκελο, θα βλέπετε τα περιεχόμενα όλων των worktrees ως μη παρακολουθούμενα αρχεία:

```
# .gitignore
.claude/worktrees/
```

Παγίδα που πρέπει να αποφύγετε: πριν από την πρώτη εκκίνηση με `--worktree` σε νέο κατάλογο, μπείτε σε αυτόν με ένα κανονικό `claude` (χωρίς τη σημαία) και αποδεχτείτε το παράθυρο διαλόγου εμπιστοσύνης χώρου εργασίας. Αν δεν το κάνετε, η σημαία αποτυγχάνει με σφάλμα “trust not accepted”—και όταν τη συνδυάζετε με `-p` για headless λειτουργία.

## Πού βρίσκονται τα worktrees και πώς να τα εντοπίσετε

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Από προεπιλογή, όλα τα worktrees βρίσκονται στο `.claude/worktrees/<name>/` δίπλα στη ρίζα του αποθετηρίου σας. Για να δείτε τη λίστα, εκτελέστε `git worktree list`. Για να μεταβείτε χειροκίνητα σε ένα worktree, χρησιμοποιήστε `cd .claude/worktrees/feature-auth`. Για εναλλαγή μέσα σε μια συνεδρία Claude, ζητήστε του «switch to another worktree»· χρησιμοποιεί το ενσωματωμένο εργαλείο EnterWorktree. Το παλιό worktree παραμένει ανέπαφο στον δίσκο.

</div>

Η προεπιλεγμένη τοποθεσία είναι σταθερή: `.claude/worktrees/<value>/` στη ρίζα του αποθετηρίου. Αν το έργο σας βρίσκεται στο `~/dev/my-app/`, το worktree `feature-auth` θα βρίσκεται στο `~/dev/my-app/.claude/worktrees/feature-auth/`.

Για μη τυπικές διατάξεις (για παράδειγμα, αν θέλετε το worktree έξω από το αποθετήριο), υπάρχει το hook `WorktreeCreate`—περισσότερα παρακάτω στην ενότητα για SVN και Mercurial.

Μέσα σε μία συνεδρία Claude, μπορείτε να μεταβείτε σε άλλο υπάρχον worktree. Απλώς πείτε στη συνομιλία: «switch to `.claude/worktrees/bugfix-123`» και το Claude θα καλέσει το εργαλείο `EnterWorktree`. Ο τρέχων φάκελος θα παραμείνει ανέπαφος—μπορείτε να επιστρέψετε με τον ίδιο τρόπο.

Η τυπική εντολή Git εμφανίζει λίστα με όλα τα worktrees, συμπεριλαμβανομένου του κύριου και όσων δημιουργήθηκαν χειροκίνητα:

```bash
git worktree list
```

Το αποτέλεσμα θα μοιάζει με αυτό:

```
/home/user/dev/my-app                  abc1234 [main]
/home/user/dev/my-app/.claude/worktrees/feature-auth  def5678 [worktree-feature-auth]
/home/user/dev/my-app/.claude/worktrees/bugfix-123    9876fed [worktree-bugfix-123]
```

## Αντιγραφή των `.env` και μυστικών: το αρχείο `.worktreeinclude`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Ένα worktree είναι ένα νέο checkout. Αρχεία από το `.gitignore` (`.env`, `.env.local`, τοπικές ρυθμίσεις) απουσιάζουν από τον νέο φάκελο. Χωρίς αυτά, τα `npm run dev` ή `prisma db push` δεν θα εκτελεστούν. Το αρχείο `.worktreeinclude` στη ρίζα του έργου χρησιμοποιεί τη σύνταξη του `.gitignore` και λέει στο Claude Code ποια αρχεία πρέπει να αντιγράφει αυτόματα σε κάθε νέο worktree. Εφαρμόζεται στο `--worktree`, στα worktrees υποπρακτόρων και στις συνεδρίες της εφαρμογής για υπολογιστή.

</div>

Όταν το `--worktree` δημιουργεί νέο φάκελο, αυτός περιέχει μόνο ό,τι έχει γίνει commit στο Git. Το `.env` με τα κλειδιά API και το `.env.local` με τις τοπικές ρυθμίσεις βρίσκονται στο `.gitignore`, επομένως δεν υπάρχουν στο worktree. Έτσι, το πρώτο `npm run dev` αποτυγχάνει με “MISSING DATABASE_URL.”

Η αυτοσχέδια λύση είναι να αντιγράφετε χειροκίνητα το `.env` μετά από κάθε `--worktree`. Λειτουργεί μία φορά και μετά το ξεχνάτε. Η λύση της Anthropic είναι ένα αρχείο `.worktreeinclude` στη ρίζα του έργου, το οποίο απαριθμεί τα αρχεία που αγνοεί το Git και πρέπει να αντιγράφονται αυτόματα σε κάθε νέο worktree.

Δημιουργήστε ένα αρχείο `.worktreeinclude` στη ρίζα του αποθετηρίου:

```
.env
.env.local
config/secrets.json
```

Η σύνταξη είναι ίδια με του `.gitignore`. Μπορείτε να χρησιμοποιήσετε μοτίβα glob:

```
.env*
*.local
config/*.json
.vscode/settings.json
```

Η Anthropic δίνει έναν σαφή κανόνα για την αποφυγή ατυχημάτων:

<figure>
<blockquote>
<p>Το αρχείο χρησιμοποιεί τη σύνταξη gitignore. Αντιγράφονται μόνο αρχεία που ταιριάζουν στο μοτίβο και παράλληλα αγνοούνται από το Git. Αρχεία που παρακολουθούνται από το Git δεν αντιγράφονται ποτέ.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

Με άλλα λόγια, δεν μπορείτε να αντιγράψετε κατά λάθος το `package.json` μέσω του `.worktreeinclude`—δεν βρίσκεται στο `.gitignore`. Είναι ασφαλές να βάλετε εκεί οποιαδήποτε μοτίβα.

Το ίδιο `.worktreeinclude` λειτουργεί σε τρεις τρόπους: χειροκίνητο `--worktree`, αυτόματα worktrees για υποπράκτορες (δείτε παρακάτω) και συνεδρίες από την εφαρμογή Claude για υπολογιστή.

## Worktree από pull request για ανασκόπηση κώδικα

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Η εντολή `claude --worktree "#1234"` κάνει fetch το pull request \#1234 από το origin και δημιουργεί ένα worktree στο `.claude/worktrees/pr-1234/` με το branch του PR. Μπορείτε να περάσετε ολόκληρο το URL—`claude --worktree https://github.com/OWNER/REPO/pull/1234`. Χρήσιμο για ανασκόπηση κώδικα: ανοίξτε το PR στον δικό του φάκελο και το Claude μπορεί να εκτελέσει tests, να διαβάσει αρχεία καταγραφής και να γράψει ένα σχόλιο, ενώ το κύριο αποθετήριο παραμένει ανέγγιχτο.

</div>

Ένα τυπικό σενάριο ανασκόπησης κώδικα: ένας συνάδελφος έστειλε ένα PR· πρέπει να επιθεωρήσετε τον κώδικα, να εκτελέσετε tests και να αφήσετε ένα σχόλιο. Με ένα κανονικό `git checkout pull/1234/head`, αλλάζετε ξανά το αντίγραφο εργασίας και διακόπτετε την ενεργή συνεδρία σας.

Με τη σημαία `--worktree`, αυτό γίνεται με μία εντολή:

```bash
claude --worktree "#1234"
```

Τι συμβαίνει: το Claude Code εκτελεί `git fetch origin pull/1234/head`, δημιουργεί ένα worktree στο `.claude/worktrees/pr-1234/` και κάνει checkout το branch του PR. Ξεκινά η συνεδρία. Μπορείτε αμέσως να του ζητήσετε «διάβασε το diff, εκτέλεσε τα tests και εντόπισε λογικά σφάλματα»—ενώ το Claude εργάζεται, η κύρια συνεδρία σας στο `main` συνεχίζει.

Η εναλλακτική σύνταξη είναι το πλήρες URL του pull request:

```bash
claude --worktree https://github.com/OWNER/REPO/pull/1234
```

Χρήση σε πραγματικό έργο: ο συνδυασμός του `claude --worktree "#N"` με τον δικό σας υποπράκτορα ανασκόπησης κώδικα σάς προσφέρει αυτόματη ανασκόπηση σε ένα ή δύο λεπτά. Εκκινήστε τον στο παρασκήνιο, συνεχίστε τη δουλειά σας στο κύριο παράθυρο και επιστρέψτε στο αποτέλεσμα μέσω του `claude agents`.

## Βασικό branch: `worktree.baseRef` για `fresh` ή `head`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Από προεπιλογή, ένα worktree δημιουργεί branch από το `origin/HEAD`—το πιο πρόσφατο συγχρονισμένο commit από το remote. Αυτή είναι μια ασφαλής, «καθαρή» αφετηρία. Αν θέλετε το worktree να περιλαμβάνει τοπικά commits που δεν προωθήθηκαν, ορίστε `worktree.baseRef: "head"` στις ρυθμίσεις. Το HEAD προσδιορίζει commit· tracked αλλαγές χωρίς commit παραμένουν στο αρχικό αντίγραφο εργασίας και χρειάζονται χωριστή, ρητή μεταφορά. Χρήσιμο όταν ένας υποπράκτορας πρέπει να εργαστεί πάνω στην τρέχουσα λειτουργία σας χωρίς να μεταβείτε στο main. Δέχεται μόνο `fresh` ή `head`· αυθαίρετες αναφορές δεν υποστηρίζονται.

</div>

Η προεπιλεγμένη ρύθμιση είναι η εξής: κάθε νέο worktree ξεκινά από το `origin/HEAD`. Το πλεονέκτημα είναι μια καθαρή αφετηρία που είναι βέβαιο ότι αντιστοιχεί σε αυτό που θα δει το CI. Το μειονέκτημα είναι ότι, αν έχετε μη δεσμευμένες αλλαγές ή αρκετά τοπικά commits πέρα από το remote στον τρέχοντα κλάδο σας, δεν θα συμπεριληφθούν στο νέο worktree.

Για εκκίνηση worktree από το τρέχον τοπικό HEAD commit, προσθέστε αυτό στο `.claude/settings.json` (ή στις καθολικές ρυθμίσεις):

```json
{
  "worktree": {
    "baseRef": "head"
  }
}
```

Τώρα το `claude --worktree experimental-feature` ξεκινά από το τρέχον τοπικό `HEAD`. Χρησιμεύει όταν η λειτουργία έχει ήδη τοπικά commits που δεν προωθήθηκαν. Δεν περιλαμβάνει tracked αλλαγές που παραμένουν χωρίς commit. Αν τις χρειάζεται ο subagent, διασώστε και μεταφέρετέ τες ρητά και εξετάστε το diff προορισμού· μη συγχέετε τη μεταφορά με `.worktreeinclude`, που χειρίζεται ignored τοπικά αρχεία.

Η ρύθμιση δέχεται ακριβώς δύο τιμές: `"fresh"` (= `origin/HEAD`) και `"head"` (= τοπικό HEAD). Δεν δέχεται αυθαίρετες αναφορές όπως `"feature-branch"` ή ένα hash commit—αυτός είναι σκόπιμος περιορισμός για να αποφευχθεί ο συνδυαστικός πολλαπλασιασμός επιλογών.

## Αυτόματη απομόνωση υποπρακτόρων: `isolation: worktree`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Ένας υποπράκτορας στο Claude Code είναι ένας εξειδικευμένος agent που εκτελεί μία εργασία (ανασκόπηση κώδικα, αναπαραγοντοποίηση, έρευνα). Αν εκκινήσετε πολλούς υποπράκτορες παράλληλα από μία συνεδρία, εργάζονται στον ίδιο φάκελο από προεπιλογή και μπορούν να αντικαταστήσουν ο ένας τα αρχεία του άλλου. Προσθέστε `isolation: worktree` στο frontmatter του υποπράκτορα για να δώσετε στον καθένα ένα προσωρινό worktree, το οποίο αφαιρείται καθαρά στο τέλος αν δεν έχει κάνει commit.

</div>

Όταν λέτε στο Claude «εκκίνησε τρεις υποπράκτορες: ο ένας διαβάζει τη βάση δεδομένων, ο δεύτερος εξετάζει το API και ο τρίτος ελέγχει τα tests», και οι τρεις εργάζονται στο αντίγραφο εργασίας σας από προεπιλογή. Αν έστω δύο από αυτούς γράφουν ταυτόχρονα στο ίδιο αρχείο, υπάρχει σύγκρουση. Η λύση είναι να δώσετε αυτόματα στον καθένα το δικό του worktree.

Μέθοδος 1: ζητήστε το προφορικά. Γράψτε στο Claude στη συνομιλία:

```
Χρησιμοποίησε worktrees για τους agents σου.
```

Το Claude θα εφαρμόσει την απομόνωση σε όλους τους επόμενους υποπράκτορες αυτής της συνεδρίας.

Μέθοδος 2: ορίστε το ρητά στον ίδιο τον υποπράκτορα. Στο αρχείο του υποπράκτορα (για παράδειγμα, `.claude/agents/code-reviewer.md`), προσθέστε ένα πεδίο στο frontmatter:

```yaml
---
name: code-reviewer
description: Reads the diff and writes code review comments
isolation: worktree
---

Είσαι ένας σχολαστικός αξιολογητής. Διάβασε το diff και αναζήτησε λογικά σφάλματα...
```

Τώρα κάθε εκκίνηση αυτού του υποπράκτορα αποκτά ένα προσωρινό worktree στο `.claude/worktrees/`. Αν ο υποπράκτορας δεν έγραψε τίποτα, ο φάκελος διαγράφεται αυτόματα μόλις ολοκληρώσει. Αν υπάρχουν μη δεσμευμένες αλλαγές, το Claude θα ρωτήσει αν θέλετε να τις διατηρήσετε ή να τις αφαιρέσετε.

Το βασικό branch για τα worktrees των υποπρακτόρων είναι το ίδιο με του `--worktree`: από προεπιλογή, `origin/HEAD`· με το `worktree.baseRef: head`, το τοπικό `HEAD`.

## Πίνακας αποφάσεων: worktree, `/bg`, subagent ή Agent View

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Τέσσερις μηχανισμοί του Claude Code που συχνά συγχέονται. Το worktree είναι **απομόνωση αρχείων** (δίσκος). Το `/bg` είναι **συνεδρία παρασκηνίου** (πλαίσιο και tokens). Ο υποπράκτορας είναι **εξειδικευμένος agent μίας χρήσης** (προτροπή και εργαλεία). Το Agent View είναι **πίνακας ελέγχου για όλες τις συνεδρίες** (UI). Μπορούν να συνδυαστούν: το `/bg` δημιουργεί αυτόματα ένα worktree, ένας υποπράκτορας με `isolation: worktree` ξεκινά σε προσωρινό worktree και το Agent View εμφανίζει και τα τρία ως γραμμές σε μία λίστα.

</div>

| Εργαλείο | Τι απομονώνει | Πότε να το χρησιμοποιήσετε |
|----|----|----|
| `claude --worktree <name>` | Αρχεία (ξεχωριστός φάκελος + branch) | Θέλετε να διατηρείτε χειροκίνητα N συνεδρίες παράλληλα σε διαφορετικά τερματικά |
| `/bg` (ή `Ctrl+B`) | Πλαίσιο και χρόνο | Μια μεγάλη εργασία όταν δεν θέλετε να μπλοκάρετε το τρέχον παράθυρο. Στο παρασκήνιο δημιουργείται ένα worktree |
| Subagent με `isolation: worktree` | Αρχεία μέσα σε μία συνεδρία | Μία προτροπή αναθέτει εργασία σε N agents και χρειάζεστε προστασία από το να αντικαταστήσουν ο ένας τον άλλον |
| `claude agents` (Agent View) | Τίποτα, είναι UI | Θέλετε να δείτε όλες τις συνεδρίες που εκτελούνται / είναι σε παύση / έχουν ολοκληρωθεί σε έναν πίνακα ελέγχου |
| `/goal` | Διαχείριση αυτονομίας | Θέλετε το Claude να εργάζεται μέχρι να εκπληρωθεί μια συνθήκη χωρίς προτροπές από εσάς ανάμεσα στις σειρές |

Τυπικοί συνδυασμοί:

- **«2 λειτουργίες παράλληλα, χειροκίνητα»** — δύο τερματικά, το καθένα εκτελεί `claude --worktree`. Η απλούστερη περίπτωση.
- **«Εκκίνησε μια αναπαραγοντοποίηση για όλη τη νύχτα· θα κλείσω την εφαρμογή»** — `/bg` + `/goal` με συνθήκη ολοκλήρωσης. Η συνεδρία εκτελείται ανεξάρτητα από το παράθυρό σας.
- **«Μία προτροπή, τρεις παράλληλες έρευνες»** — τρεις υποπράκτορες με `isolation: worktree`. Ο καθένας στο δικό του sandbox.
- **«Τι εκτελείται αυτή τη στιγμή;»** — `claude agents`. Ένας πίνακας ελέγχου όλων των συνεδριών με φίλτρα «running», «blocked» και «done».

## 5 παγίδες κατά τη χρήση worktrees

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Τα συνηθέστερα προβλήματα: ξεχνάτε το `.worktreeinclude` και το περιβάλλον δεν λειτουργεί· συγχέετε ένα worktree με κανονικό branch και χάνετε μη δεσμευμένες αλλαγές· διατηρείτε 5+ παράλληλες συνεδρίες και ξεχνάτε πού βρίσκεται τι· δεν ρυθμίζετε το `cleanupPeriodDays` κι έτσι συσσωρεύονται άχρηστοι φάκελοι· και ξεχνάτε το παράθυρο εμπιστοσύνης σε έναν νέο κατάλογο, με αποτέλεσμα το `--worktree` να αποτυγχάνει με σφάλμα.

</div>

**1. Εκκινήσατε worktree, λείπει το `.env`, τίποτα δεν λειτουργεί.** Το συνηθέστερο πρόβλημα. Ένα worktree είναι νέο checkout χωρίς αρχεία που αγνοούνται από το Git. Η λύση είναι να προσθέσετε ένα αρχείο `.worktreeinclude` με `.env*` και τις απαραίτητες τοπικές ρυθμίσεις μόλις ρυθμίσετε τη λειτουργία worktree. Βεβαιωθείτε ότι το αρχείο βρίσκεται στη ρίζα του αποθετηρίου και όχι στο `.claude/`.

**2. Θέλετε να μεταβείτε στο κύριο branch, εκτελείτε `cd` προς τη ρίζα και χάνετε τις μη δεσμευμένες αλλαγές στο worktree.** Ο ριζικός φάκελος και το worktree είναι δύο **διαφορετικά** αντίγραφα εργασίας. Επιστρέψατε με `cd`· οι αλλαγές στο worktree παρέμειναν στη θέση τους—δεν πήγαν πουθενά. Όμως, αν μπερδευτήκατε και εκτελέσατε `git stash` στον κύριο φάκελο, νομίζοντας ότι βρισκόσασταν στο worktree, το stash θα δημιουργηθεί στο κύριο branch, όχι σε αυτό που περιμένατε.

**3. Εκκινήσατε 5 παράλληλες συνεδρίες και δεν θυμάστε τι κάνει καθεμία.** Η τεκμηρίωση της Anthropic προειδοποιεί ρητά ότι οι περισσότεροι προγραμματιστές δεν μπορούν να διαχειριστούν νοητικά περισσότερες από 2–3 συνεδρίες. Ένδειξη υπερφόρτωσης είναι να ανοίγετε το Agent View και να μην μπορείτε να πείτε αμέσως τι κάνει κάθε agent. Περιοριστείτε σε δύο ταυτόχρονες συνεδρίες. Αν η εργασία απαιτεί περισσότερες, πρέπει να οργανωθεί μέσω `/goal` + υποπρακτόρων και όχι χειροκίνητα.

**4. Τα worktrees από `-p` (headless) δεν εκκαθαρίζονται αυτόματα.** Η εντολή `claude --worktree feature-x -p "do thing"` δεν εμφανίζει διαδραστική προτροπή εξόδου, επομένως δεν υπάρχει στιγμή που το Claude να ρωτήσει «να αφαιρεθεί το worktree;». Αυτά τα worktrees συσσωρεύονται. Καθαρίστε τα χειροκίνητα: `git worktree remove .claude/worktrees/feature-x`. Ή χρησιμοποιήστε ένα cron script που αφαιρεί οτιδήποτε είναι παλαιότερο από 7 ημέρες.

**5. Παράθυρο εμπιστοσύνης σε νέο φάκελο.** Αν ανοίξετε το αποθετήριο για πρώτη φορά και εκτελέσετε αμέσως `claude --worktree`, η εντολή θα αποτύχει. Εκτελέστε `claude` χωρίς σημαίες, αποδεχτείτε την εμπιστοσύνη χώρου εργασίας και βγείτε—έπειτα το `--worktree` θα λειτουργήσει. Αυτό είναι σκόπιμο, ώστε το Claude να μην αποκτά πρόσβαση στο έργο κάποιου άλλου χωρίς τη συγκατάθεση του χρήστη.

## Εκκαθάριση: τι διαγράφεται αυτόματα

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Ένα worktree από `--worktree` χωρίς αλλαγές (χωρίς commits, μη παρακολουθούμενα αρχεία ή μη δεσμευμένες αλλαγές) αφαιρείται αυτόματα όταν βγείτε. Αν υπάρχουν αλλαγές, το Claude θα ρωτήσει. Τα worktrees από υποπράκτορες και `/bg` αφαιρούνται αυτόματα από το χρονικό όριο `cleanupPeriodDays` στις ρυθμίσεις, αν είναι καθαρά. Τα worktrees από `-p` δεν καθαρίζονται καθόλου—αφαιρέστε τα χειροκίνητα με `git worktree remove`.

</div>

Η λογική εκκαθάρισης εξαρτάται από το τι έχετε κάνει στο worktree και πώς ξεκινήσατε τη συνεδρία. Η τεκμηρίωση της Anthropic παραθέτει τρία σενάρια:

<figure>
<blockquote>
<p>Αν το worktree δεν έχει μη δεσμευμένες αλλαγές, μη παρακολουθούμενα αρχεία ή νέα commits, το worktree και το branch του αφαιρούνται αυτόματα όταν βγείτε από τη συνεδρία. Αν η συνεδρία έχει όνομα, το Claude ρωτά αντί να το αφαιρέσει, ώστε να μπορείτε να διατηρήσετε το worktree για αργότερα.</p>
</blockquote>
<figcaption>— Anthropic Docs, https://code.claude.com/docs/en/worktrees</figcaption>
</figure>

Σενάριο 1: μπήκατε, δεν κάνατε τίποτα και βγήκατε—το worktree αφαιρέθηκε.

Σενάριο 2: κάνατε κάποια δουλειά χωρίς να την κάνετε commit—το Claude θα ρωτήσει «διατήρηση ή αφαίρεση;» όταν βγείτε. Η επιλογή «διατήρηση» αποθηκεύει τον φάκελο και το branch για αργότερα. Η επιλογή «αφαίρεση» διαγράφει τον κατάλογο **μαζί με** μη δεσμευμένες αλλαγές και νέα commits. Αυτό είναι καταστροφικό—μην επιλέγετε «αφαίρεση» από συνήθεια.

Σενάριο 3: εκκινήσατε με `-p` (headless) και η εντολή ολοκληρώθηκε και τερματίστηκε. Το worktree παραμένει. Καθαρίστε το χειροκίνητα:

```bash
git worktree remove .claude/worktrees/feature-x
```

Επιπλέον, τα worktrees από υποπράκτορες και συνεδρίες `/bg` αφαιρούνται αυτόματα από τον καθαρισμό παρασκηνίου αν είναι παλαιότερα από `cleanupPeriodDays` ημέρες (μια ρύθμιση, συνήθως 30 ημέρες από προεπιλογή) **και** δεν έχουν μη αποθηκευμένη εργασία. Τα worktrees από `--worktree` δεν επηρεάζονται από τον αυτόματο καθαρισμό—είναι δική σας ευθύνη.

## Εναλλακτικές για SVN, Perforce και Mercurial: το hook `WorktreeCreate`

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Η λειτουργία worktree χρησιμοποιεί από προεπιλογή το `git worktree`. Για SVN, Perforce, Mercurial και άλλα VCS, μπορείτε να συνδέσετε δικό σας μηχανισμό μέσω των hooks `WorktreeCreate` και `WorktreeRemove` στις ρυθμίσεις του Claude Code. Το hook λαμβάνει το όνομα από το stdin, πρέπει να εκτυπώσει τη διαδρομή του καταλόγου που δημιουργήθηκε και να τερματίσει με κωδικό 0. Όταν χρησιμοποιείτε δικό σας hook, το `.worktreeinclude` δεν επεξεργάζεται—πρέπει να αντιγράψετε τα τοπικά αρχεία μόνοι σας μέσα στο hook.

</div>

Αν το αποθετήριο χρησιμοποιεί Subversion ή Mercurial, η σημαία `--worktree` δεν θα λειτουργήσει απευθείας. Η Anthropic παρέχει ένα σημείο επέκτασης μέσω δύο hooks: `WorktreeCreate` (δημιουργεί ένα απομονωμένο αντίγραφο) και `WorktreeRemove` (το αφαιρεί).

Παράδειγμα hook SVN από την επίσημη τεκμηρίωση:

```json
{
  "hooks": {
    "WorktreeCreate": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash -c 'NAME=$(jq -r .name); DIR=\"$HOME/.claude/worktrees/$NAME\"; svn checkout https://svn.example.com/repo/trunk \"$DIR\" >&2 && echo \"$DIR\"'"
          }
        ]
      }
    ]
  }
}
```

Το hook διαβάζει το όνομα του worktree από το stdin (`{ "name": "feature-auth" }`), εκτελεί `svn checkout` σε έναν προκαθορισμένο κατάλογο και εκτυπώνει τη διαδρομή στο stdout—το Claude Code τη χρησιμοποιεί ως κατάλογο εργασίας για τη νέα συνεδρία.

Μια σημαντική επιφύλαξη: όταν χρησιμοποιείτε δικό σας hook, το `.worktreeinclude` δεν χρησιμοποιείται. Αν χρειάζεστε `.env` ή άλλα αρχεία που αγνοούνται από το Git στον νέο φάκελο, αντιγράψτε τα μέσα στο ίδιο το script του hook.

## Τι ακολουθεί: τρεις συναφείς μηχανισμοί παραλληλισμού

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Section takeaway">

Κύριο συμπέρασμα

Το worktree παρέχει απομόνωση αρχείων. Το `/bg` παρέχει απομόνωση πλαισίου και tokens. Ο υποπράκτορας παρέχει απομόνωση εργασίας και εργαλείων. Το `/goal` παρέχει αυτονομία μέχρι να εκπληρωθεί μια συνθήκη. Το καθένα λύνει ένα πρόβλημα από μόνο του. Μαζί επιτρέπουν να διατηρείτε 3–5 παράλληλες εργασίες χωρίς νοητική κατάρρευση. Στη συνέχεια, έχει νόημα να εξερευνήσετε τους σχετικούς οδηγούς για την αυτόνομη λειτουργία, τους προσαρμοσμένους υποπράκτορες και τις δυναμικές ροές εργασίας μέσω των παρακάτω συνδέσμων.

</div>

Το worktree προσφέρει απομόνωση αρχείων. Το `/bg` προσφέρει απομόνωση πλαισίου. Οι υποπράκτορες προσφέρουν απομόνωση εργασιών. Κάθε μηχανισμός λύνει ένα πρόβλημα από μόνος του. Μαζί παρέχουν έναν τρόπο να εργάζεστε σε τρεις έως πέντε παράλληλες εργασίες χωρίς νοητική κατάρρευση. Αυτό είναι το σύνολο δεξιοτήτων πίσω από το προχωρημένο vibe-coding το 2026.

Αυτό το θέμα συνεχίζεται φυσικά σε τρία σχετικά θέματα: [πώς να ρυθμίσετε έναν αυτόνομο agent με `/goal` και Agent View](https://ailoot.ai/blog/el/claude-code-goal-agent-view/), [πώς να δημιουργήσετε τους δικούς σας υποπράκτορες για τις εργασίες σας](https://ailoot.ai/blog/el/claude-code-subagents/) και [πώς να εκκινήσετε εκατοντάδες agents μέσω των Dynamic Workflows](https://ailoot.ai/blog/el/claude-code-dynamic-workflows/).

<div class="section" role="doc-bibliography" aria-label="Sources">

### Πηγές

- [Εκτέλεση παράλληλων συνεδριών με worktrees - Claude Code Docs](https://code.claude.com/docs/en/worktrees)
- [Δημιουργία προσαρμοσμένων υποπρακτόρων - Claude Code Docs](https://code.claude.com/docs/en/sub-agents)
- [Ιστορικό αλλαγών Claude Code (Μάιος-Ιούνιος 2026)](https://code.claude.com/docs/en/changelog)
- [Εκτέλεση agents παράλληλα - Claude Code Docs](https://code.claude.com/docs/en/agents)
- [Agent View - Claude Code Docs](https://code.claude.com/docs/en/agent-view)
- [Σελίδα εγχειριδίου git worktree](https://git-scm.com/docs/git-worktree)

</div>





[Ανοίξτε το Ailoot](https://ailoot.ai/).

## Ερωτήσεις και απαντήσεις: Git worktree στο Claude Code: παράλληλες συνεδρίες

### Το baseRef head αντιγράφει αλλαγές χωρίς commit σε νέο worktree;

Όχι. Ξεκινά από το τρέχον τοπικό HEAD commit, μαζί με τοπικά commits που λείπουν από remote. Tracked αλλαγές χωρίς commit μένουν στο αρχικό αντίγραφο· μεταφέρετε ρητά απαιτούμενο WIP και εξετάστε το νέο worktree.

### Γιατί λείπει το .env σε νέο worktree;

Ένα worktree είναι νέο checkout, οπότε λείπουν τοπικά αρχεία που αγνοεί το Git. Το `.worktreeinclude` Claude Code απαριθμεί ignored αρχεία για αντιγραφή· προσαρμοσμένο hook WorktreeCreate πρέπει να τη χειρίζεται μόνο του. Συμπεριλάβετε μόνο αρχεία που χρειάζεται πραγματικά η εργασία.


## Ailoot · Η εταιρεία και το χαρτοφυλάκιο έργων της

Η Ailoot στηρίζεται στη συσσωρευμένη λειτουργική εμπειρία, τη μεγάλη πελατειακή βάση, τη σταθερή εξυπηρέτηση και τον συνεχή έλεγχο KPI.

Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.

Η Ailoot αξιοποιεί αυτή τη λειτουργική εμπειρία για πρόσβαση μέσω API σε λειτουργίες AI στα προϊόντα, τους πράκτορες, τις εφαρμογές και τους αυτοματισμούς των πελατών.
