Come rimuovere un ramo localmente?


159

Ho un master e un ramo dev nel mio repository. Voglio rimuovere il ramo principale dal mio computer in modo da non impegnarmi accidentalmente (è successo ..).

Qui ci sono domande su come eliminare le filiali localmente e in remoto, ma non sono stato in grado di scoprire come eliminare una filiale solo localmente.

Una risposta ha detto di usare questo:

git branch -d local_branch_name

Ma ci ho provato e il ramo appare ancora nell'applicazione GitHub.


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

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

GitHub per Windows mostra anche i rami remoti
SLaks

@SLaks Quindi, dopo aver eliminato il ramo localmente, se faccio clic su di esso nell'applicazione GitHub per Windows, lo sta solo clonando nuovamente? Voglio impedire a me stesso di essere in grado di apportare direttamente modifiche al ramo principale.
Nate

Risposte:


114

Penso (in base ai tuoi commenti) di capire cosa vuoi fare: vuoi che la tua copia locale del repository non abbia né il ramo locale ordinario master, il ramo di tracciamento remoto origin/master, anche se il repository che hai clonato - quello github —Ha un ramo locale masterche non si desidera cancellare dalla versione github.

Puoi farlo cancellando il ramo di localizzazione remoto localmente, ma tornerà semplicemente ogni volta che chiedi a git di sincronizzare il tuo repository locale con il repository remoto, perché git chiede al loro git "quali rami hai" e dice "I have master" così il tuo git (re) crea origin/masterper te, in modo che il tuo repository abbia ciò che ha.

Per eliminare localmente il ramo di localizzazione remoto utilizzando l'interfaccia della riga di comando:

git branch -d -r origin/master

ma ancora una volta, tornerà su risincronizzazioni. Si è possibile sconfiggere questo pure (usando remote.origin.fetchla manipolazione), ma probabilmente stai meglio solo di essere disciplinato abbastanza per non creare o modificare masterlocalmente.




17

Per quanto riesco a capire il problema originale, hai aggiunto per errore commessi al master locale e non hai ancora inviato le modifiche. Ora si desidera annullare le modifiche e si spera di eliminare le modifiche locali e creare un nuovo ramo principale da quello remoto.

Puoi semplicemente ripristinare le modifiche e ricaricare il master dal server remoto:

git reset --hard origin/master

13

L'applicazione Github per Windows mostra tutti i rami remoti 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 dall'applicazione Windows Github.

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

Tuttavia, ogni volta che si eliminano le modifiche al ramo locale, il ramo remoto verrà comunque visualizzato nell'applicazione. Se non si desidera continuare a apportare modifiche, ignorarlo e non fare clic, altrimenti è possibile clonare il repository. Se hai altre domande, per favore fatemelo sapere.


1

devi passare a un altro ramo e provare lo stesso.

git branch -d


1
Questa dovrebbe essere una risposta? O un chiarimento qustion? O una semplice domanda? È così breve che non posso dirlo. Ti piacerebbe elaborare?
Yunnosch,

0

Con i tuoi tag, suppongo che tu stia usando Github. Perché non creare alcune regole di protezione delle filiali per la filiale principale? In questo modo anche se provi a spingere verso il master, lo rifiuterà.

1) Vai alla scheda 'Impostazioni' del tuo repository su Github.

2) Fai clic su "Rami" nel menu di sinistra.

3) Fai clic su "Aggiungi regola"

4) Immettere 'master' per un modello di diramazione.

5) Seleziona "Richiedi revisioni richieste pull prima di unire"

Consiglierei anche di fare lo stesso per il tuo ramo di sviluppo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.