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
masternon è coinvolto in questo. Intendi piuttosto il ramo attuale. ;)
git branch -d branch_nameche dovrebbe eliminare solo il ramo localmente. Perché l'avviso è necessario in questo caso?
Supponendo che tu abbia attualmente mastereffettuato il check-out, significa che le modifiche apportate in old_branchnon sono presenti in master. Tuttavia, sono presenti in old_branchsu origin.
HEAD", HEADqui fa riferimento all'HEAD del ramo principale locale.
mastereffettuato il check out localmente, può ancora verificarsi se lo SHA di uno dei commit è cambiato; cioè hai ribasato origin/old_branchsu 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_branchcome non uniti dopo aver trasferito le modifiche al tuo masterramo 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_branchsu remoto originma non è unito al ramo masterche è 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_branchsul master git, non ti permettere nemmeno di eliminare il ramo non unito al master (beh, lo consente, ma con la chiave -Dche è l' force-deleteopzione).
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