2015-02-01 22 views
66

Ho un master e un ramo dev nel mio repository. Voglio rimuovere il ramo principale dal mio computer in modo che non mi impegni per errore (è successo ..).Come rimuovere un ramo localmente?

Ci sono domande su come eliminare localmente i rami e in remoto, ma non sono stato in grado di scoprire come eliminare solo un ramo localmente.

Una risposta ha detto di usare questo:

git branch -d local_branch_name 

ma ho provato questo e il ramo mostra ancora fino nell'applicazione GitHub.

+0

Qual è l'output di tale comando? Su quale ramo sei? Come appare nella console? – SLaks

+0

@SLaks Ho avuto un tipo nella mia domanda.Nella console in realtà dice che il ramo è stato cancellato, ma nell'applicazione GitHub (anche dopo il riavvio) il ramo e il commit sono ancora visibili. L'output è 'Deleted branch master (was e8a8e29) .' – Nate

+0

GitHub per Windows mostra anche branch remoti – SLaks

risposta

53

Credo che (sulla base di osservazioni) che ho capito che cosa si vuole fare: si desidera che la copia locale del repository non hanno né il ramo Ordinario del luogo master, il ramo a distanza-tracking origin/master, anche se il repository che hai clonato - quello del github - ha un ramo locale master che non hai vuoi eliminato dalla versione github.

Puoi farlo eliminando localmente il ramo di localizzazione remota, ma tornerà semplicemente ogni volta che chiederai al tuo git di sincronizzare il tuo repository locale con il repository remoto, perché il tuo git chiede al proprio git "quali rami hai avere "e dice" Ho master "così il tuo git (re) crea per te origin/master, in modo che il tuo repository abbia ciò che ha.

Per eliminare la filiale remoto di monitoraggio a livello locale mediante l'interfaccia a riga di comando:

git branch -d -r origin/master 

ma ancora una volta, sarà solo tornare a ri-sincronizzazioni. È è possibile sconfiggere anche questo (utilizzando la manipolazione remote.origin.fetch), ma probabilmente è meglio essere disciplinati abbastanza da non creare o modificare master localmente.

+0

Correlati: [Come clonare un singolo ramo in git?] (Https://stackoverflow.com/q/1778088/321973) –

9

L'applicazione Github per Windows mostra tutte le diramazioni remote di un repository. Se il ramo è stato eliminato localmente con $ git branch -d [branch_name], il ramo remoto esiste ancora nel repository Github e verrà visualizzato indipendentemente nell'applicazione Github di Windows.

Se si desidera eliminare completamente il ramo (anche da remoto), utilizzare il comando precedente in combinazione con $ git push origin :[name_of_your_new_branch]. Avviso: questo comando cancella tutti i rami esistenti e può causare la perdita di codice. Stai attento, non penso che questo sia quello che stai cercando di fare.

Tuttavia, ogni volta che si elimina il ramo locale, il ramo remoto verrà comunque visualizzato nell'applicazione. Se non vuoi continuare a fare cambiamenti, basta ignorarlo e non fare clic, altrimenti potresti clonare il repository. Se hai altre domande, ti prego di farmelo sapere.

12

Forza Elimina filiale locale:

$ git branch -D 'branch_name' 

Nota:"-D" è forza opzione Elimina.

+0

Se elimino un ramo locale che ha un set upstream e poi eseguo un normale push vince ' t cancella il ramo remoto giusto? –

Problemi correlati