2015-10-23 2 views
44

creo un worktree alla succursale utilizzando il seguente comando:Non in grado di checkout ramo anche dopo la rimozione worktree e funzionante worktree prugna

Git add worktree <path> <branch-name> 

Questo ha creato una nuova worktree per me e controllato il ramo nel percorso

Ora ho pensato di cancellare/rimuovere il worktree. Eseguito i seguenti comandi:

rm -rf <path> 
git worktree prune 

Questo dovrebbe idealmente rimuovere il worktree e rimuovere anche il riferimento per quel percorso. Quindi ora dovrei essere in grado di controllare il ramo. Ma quando ho eseguito seguente comando alla cassa a quel ramo:

git checkout <branch-name> 

ottengo questo errore:

fatal: '<branch-name>' is already checked out at '' 

qualcuno potrebbe aiutarmi con quello che sta succedendo.

+0

Quale versione git stai usando? – VonC

+0

Sto usando l'ultima versione, penso che sia 2.5 – Randeep

+0

Cosa restituisce 'git --version'? 2.5 non è l'ultima versione. – VonC

risposta

44

ho lavorato intorno a questo cancellando .git/worktrees/<branch-name> dalla directory repository.

+0

Questo ha funzionato. Grazie :-) – Randeep

+0

risolto anche per me. –

+0

Quando si utilizza 'git worktree' ho aggiunto lo stesso nome più volte. La prima volta ottengo un ref lo stesso nome della directory. Ma la seconda volta, poiché l'ref esiste già, vedo un "1" suffisso. Mi chiedo se l'eliminazione della directory non risolva il riferimento con il suffisso "1"? Questa soluzione mi ha aiutato eliminando la discrepanza di denominazione –

-5

Una soluzione rapida potrebbe essere, nel caso in cui tutti i rami e il codice rilevanti sono su GitHub. Rimuovere la directory completa del progetto git.

E poi clonarlo di nuovo da github, correndo git clone <github-project>

TIPGetting just the tip of a remote git branch per accelerare le cose

+0

Ci vorranno ore perché la storia del nostro progetto è enorme – Randeep

+2

Assicurati di riavviare tre volte solo nel caso ;-) –

7

Penso che il comando corretto sia: git worktree prune