Voglio solo avere una migliore comprensione del messaggio di avviso dopo aver eliminato un ramo locale
avviso: eliminazione del ramo
'old_branch'
che è stato unito a'refs/remotes/origin/old_branch'
, ma non ancora unito aHEAD
.
Voglio solo avere una migliore comprensione del messaggio di avviso dopo aver eliminato un ramo locale
avviso: eliminazione del ramo
'old_branch'
che è stato unito a'refs/remotes/origin/old_branch'
, ma non ancora unito aHEAD
.
Risposte:
Questo ti avverte solo che hai le modifiche inviate al ramo origin
, ma non sono unite master
, quindi lo stai eliminando solo localmente.
Ti avverte che non hai più una copia locale di quel ramo, ma esiste in origin
Se vuoi eliminare anche il ramo remoto, usa git push --delete origin old_branch
master
non è coinvolto in questo. Intendi piuttosto il ramo attuale. ;)
git branch -d branch_name
che dovrebbe eliminare solo il ramo localmente. Perché l'avviso è necessario in questo caso?
Supponendo che tu abbia attualmente master
effettuato il check-out, significa che le modifiche apportate in old_branch
non sono presenti in master
. Tuttavia, sono presenti in old_branch
su origin
.
HEAD
", HEAD
qui fa riferimento all'HEAD del ramo principale locale.
master
effettuato il check out localmente, può ancora verificarsi se lo SHA di uno dei commit è cambiato; cioè hai ribasato origin/old_branch
su origin/master
. Anche se fosse un avanzamento veloce, questo genererà un nuovo SHA per ogni nuovo commit da origin/old_branch
, facendo sì che git veda gli SHA originali nel tuo locale old_branch
come non uniti dopo aver trasferito le modifiche al tuo master
ramo locale . Puoi vedere questa risposta e questa risposta sul motivo per cui ciò si verifica.
Ciò significa che il tuo ramo locale old_branch
è aggiornato con il ramo remoto old_branch
su remoto origin
ma non è unito al ramo master
che è considerato il ramo principale nel repository.
È solo una precauzione di git. Ti dà un suggerimento: forse hai svolto il tuo lavoro nel topic-branch e hai dimenticato di unirlo al ramo principale?
aggiornare
Git ti avverte di perdere le modifiche. Ad esempio, se non hai il tuo old_branch
sul master git, non ti permettere nemmeno di eliminare il ramo non unito al master (beh, lo consente, ma con la chiave -D
che è l' force-delete
opzione).
master
, ma l'attuale HEAD
.
Per aggiungere alle altre risposte, questo può anche significare che la modifica potrebbe essere fusa in master, solo che la tua copia locale di master non la riflette ancora. In entrambi i casi questo ti informa semplicemente che la copia locale del tuo master non ha le modifiche che hai inserito su origin. Fusa / Non fusa ... forse, forse no