Git worktree o sottomodulo: quale ti serve?
Worktree: un altro checkout dello stesso repository
Un worktree collegato ti permette di lavorare su un ramo diverso in un’altra cartella senza modificare il checkout già aperto. Usalo per compiti paralleli o tentativi di agenti all’interno di uno stesso repository.
Sottomodulo: un repository separato all’interno di un padre
Un sottomodulo ha una propria cronologia. Il repository padre registra il commit specifico del sottomodulo che si aspetta, così puoi includere un altro progetto e scegliere quando aggiornare quel riferimento.
Risolvono problemi diversi: un worktree offre più cartelle di lavoro a un repository; un sottomodulo collega due repository. FluxGit mostra i worktree collegati e lo stato dei sottomoduli tra padre e figlio nella stessa vista dello spazio di lavoro. Consulta il flusso sicuro con worktree per agenti di programmazione in parallelo, insieme alla documentazione di Git worktree e dei sottomoduli Git per conoscere il comportamento sottostante di Git.
Usare Git worktree con i sottomoduli
Worktree e sottomoduli possono coesistere, ma controlla ogni checkout separatamente. Git documenta un supporto incompleto dei sottomoduli tra più worktree e sconsiglia più checkout di un superprogetto. Verifica questo limite prima di adottare questa struttura.
- il commit del sottomodulo registrato nell’HEAD del worktree padre
- il commit del sottomodulo preparato nell’indice del padre
- l’HEAD del checkout del sottomodulo inizializzato
Confronta questi tre commit prima di cambiare un riferimento; commit uguali non dimostrano che la cartella di lavoro del figlio sia pulita. FluxGit mostra lo stato padre-figlio e i riferimenti divergenti; Agent Lanes confronta tentativi paralleli senza applicarne le modifiche.
Segui il percorso di ispezione in sola lettura