Mai mult
Cum pot șterge un Git de ramură la nivel local și de la distanță?
Vreau sa sterg o ramură atât la nivel local cât și la distanță.
Încercări eșuate de a Șterge de la Distanță de Ramură
``bash $ git branch -d telecomenzi/origine/bugfix eroare: branch 'telecomenzi/origine/bugfix' nu a fost găsit.
$ git branch -d origine/bugfix eroare: branch 'de origine/bugfix' nu a fost găsit.
$ git branch -rd origine/bugfix Șterse de la distanță ramură de origine/bugfix (a fost 2a14ef7).
$ git push Totul până-la-data de
$ git pull De la github.com:gituser/gitproject
- [new branch] bugfix -> origine/bugfix Deja până-la-data. ``
Ce ar trebui să fac diferit de a șterge cu succes la
telecomenzi/origine/bugfix
ramură atât la nivel local cât și la distanță?
16171
39
Rezumat
Rețineți că, în cele mai multe cazuri la distanță numele este de "origine".
Șterge Filiala Locală
Pentru a șterge locale ramura utilizați una dintre următoarele:
Notă:
- d
opțiune este un alias pentru--delete, care șterge doar sucursalei, dacă acesta a fost deja pe deplin fuzionat în amonte de ramură. Ai putea folosi, de asemenea,
- D, care este un alias pentru
--șterge --force, care șterge creanga "indiferent de fuzionat statut." [Sursa: om git branch
]Șterge de la Distanță de Ramură [Actualizat la 8-Sep-2017]
Ca de Git v1.7.0, puteți șterge un de la distanță ramura folosind
care ar putea fi mai ușor de reținut decât
care a fost adăugat în Git v1.5.0 "pentru a șterge de la distanță o sucursală sau o etichetă."
Începând de la [Git v2.8.0][git-2.8.0] puteți utiliza, de asemenea,
git push
cu-d
opțiune ca un alias pentru--delete
.Prin urmare, versiunea de Git ați instalat va dicta dacă aveți nevoie pentru a utiliza mai ușor sau mai greu de sintaxă.
A șterge de la Distanță de Ramură [Original Răspuns de la 5-Jan-2010]
De la Capitolul 3 din Pro Git de Scott Chacon:
Am emis
git push origin: bugfix
și a funcționat de minune. Scott Chacon a fost corect—nu va dori să câine ureche pagina (sau aproape urechi de câine de a răspunde la acest lucru pe Stiva Overflow).[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt
Apoi, ar trebui să execute acest lucru pe alte masini
pentru a propaga modificări.
Matei's a răspunde este foarte bun pentru eliminarea telecomanda sucursale și am aprecia, de asemenea, o explicație, dar pentru a face o simplă distincție între cele două comenzi:
Pentru a elimina un filiala locală de masina ta:
git branch -d {the_local_branch}
(use-D
, în loc de a forța ștergerea ramură fără verificarea fuzionat stare)Pentru a elimina un de la distanță ramură de pe server:
git push origin --șterge {the_remote_branch}
Referință: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote
Răspunsurile Scurte
Dacă doriți mai multe explicații detaliate din următoarele comenzi, apoi a se vedea lung răspunsuri în secțiunea următoare.
Ștergerea o ramură de la distanță:
Ștergerea unei filiale locale:
Ștergerea unui local de la distanță-de urmărire ramură:
Răspunsul Lung: există 3 diferite ramuri pentru a șterge!
Când te're de-a face cu ștergerea ramuri atât la nivel local cât și la distanță, să păstreze în minte că există 3 diferite ramuri implicate:
origine/X
, care urmărește de la distanță filiala "X".Poster original folosit
care numai șters local la distanță de urmărire ramură
origine/bugfix
, și nu real de la distanță de ramură "bugfix" la "origine".Pentru a șterge real de la distanță de ramură, ai nevoie de
Detalii Suplimentare
Următoarele secțiuni descriu detalii suplimentare să ia în considerare atunci când ștergerea de la distanță și de la distanță-de urmărire ramuri.
Împingând pentru a șterge de la distanță ramuri, de asemenea, șterge de la distanță de urmărire ramuri
Rețineți că ștergerea de la distanță filiala " X "din linia de comandă, folosind un
git push
va șterge, de asemenea, la distanță la nivel local-de urmărire ramurăorigine/X
, astfel încât nu este necesar să prune învechite de la distanță-de urmărire ramură cugit fetch --prune" sau " git fetch-p
, deși nu ar't rănit dacă ai făcut-o oricum.Puteți verifica că la distanță de urmărire ramură
origine/X
a fost, de asemenea, șters de către execută următoarele:Tăiere învechite local la distanță de urmărire ramură de origine/X
Dacă ai n't a șterge de la distanță de ramură " X " din linia de comandă (ca mai sus), apoi local repo va conține în continuare (un acum învechit) la distanță de urmărire ramură
origine/X
. Acest lucru se poate întâmpla dacă ați șters o ramură de la distanță direct prin intermediul GitHub's interfață web, de exemplu.Un mod tipic de a elimina aceste învechite de la distanță-de urmărire ramuri (din Git versiunea 1.6.6) este de a rula pur și simplu
git fetch " cu " --prune
sau mai scurt-p
. Rețineți că acesta elimină toate învechite local la distanță de urmărire ramuri pentru orice distanță ramuri care nu mai exista pe telecomanda:Aici este citat relevant din 1.6.6 eliberare note (sublinierea mea):
Alternative de mai sus automată de tăiere pentru învechite de la distanță-de urmărire ramuri
Alternativ, în loc de tăierea învechite local la distanță de urmărire ramuri prin
git fetch-p
, puteți evita de a face suplimentare de exploatare a rețelei doar prin eliminarea manual ramura(es) cu--de la distanță " sau " - r
steaguri:A Se Vedea, De Asemenea,
Pașii pentru ștergerea unei sucursale:
Pentru ștergerea **ramură de la distanță:**Pentru ștergerea filiala locală ai trei moduri:
Explicați: OK, explica-mi ce'e pe aici!
Pur și simplu nu
git push origin --delete
pentru a șterge de la distanță de ramură NUMAI, adăugați numele de sucursale la sfârșitul anului și acest lucru va șterge și împingeți-l la distanță în același timp...De asemenea,
git branch -D
, care pur și simplu ștergeți filiala locală ****A!...-D
vine de la--delete --force
, care va șterge ramura chiar l's nu a fuzionat(forța șterge), dar puteți folosi, de asemenea,- d
care vine de la--delete
care arunca o eroare respective de ramură fuziona stare...Am crea, de asemenea, imaginea de mai jos pentru a arăta pașii de mai jos:
De asemenea, puteți să utilizați următoarele opțiuni pentru a șterge de la distanță de ramură
Care face acelasi lucru ca
dar acesta poate fi mai ușor să vă amintiți.
Sfat: atunci Când ștergeți ramuri folosind
sau
numai referirile sunt șterse. Chiar dacă ramura este de fapt eliminate de pe telecomanda referințele la acesta încă mai există în depozite locale de membrii echipei. Acest lucru înseamnă că, pentru ceilalți membri ai echipei șterse ramuri sunt încă vizibile atunci când se face o
git branch -o
.Pentru a rezolva această membrii echipei pot prune elimină ramurile cu
Acest lucru este de obicei
git remote prune origine
.Dacă doriți să ștergeți o ramură, prima verificare la filiala altele decât cele de ramură să fie șterse.
Ștergerea filiala locală:
Ștergerea de la distanță ramură:
Acest lucru este simplu: trebuie Doar să rulați următoarea comandă:
Pentru a șterge un Git branch atât la nivel local cât și la distanță, ștergeți mai întâi filiala locală folosind comanda:
(aici "exemplu" este ramura numele)
Și după aceea șterge de la distanță de ramură, folosind comanda:
O altă abordare este de:-
AVERTISMENT: Acest lucru va șterge toate sucursalele izolate, care nu există la nivel local. Sau mai pe larg,
va face ca depozitul de la distanță arată ca copia locală a depozitului (locale capete, telecomenzi și tag-uri sunt oglindite pe telecomandă).
Eu folosesc următoarele mea Bash setări:
Apoi, puteți apela:
Șterge la nivel local:
Pentru a șterge o filială locală, puteți folosi:
Pentru a șterge o ramură cu forța, folosi
-D "în loc de" - d
.Șterge de la distanță:
Există două opțiuni:
Îți sugerez să utilizați al 2-lea mod, ca este mult mai intuitiv.
Din ianuarie 2013, GitHub inclus o Ștergeți-sucursala butonul de lângă fiecare ramură în "Ramuri" pagina.
Relevante blog post: de a Crea și a șterge ramuri
Dacă doriți să finalizați acești pași cu o singură comandă, puteți face un alias pentru că prin adăugarea de mai jos pentru a ta
~/.gitconfig
:Alternativ, puteți adăuga acest la nivel global config din linia de comandă, folosind
NOTĂ: Dacă utilizați
-d
(litere mici d), filiala va fi ștearsă numai dacă a fost fuzionat. Pentru a forța ștergerea să se întâmple, va trebui să utilizați-D
(majuscule D).Pentru a șterge dvs. de ramură la nivel local și de la distanță
Checkout pentru ramura master - `git checkout master
Șterge de la distanță de ramură -
git push origin --delete <sucursală-numele>
Ștergeți filiala locală -
git branch-ștergeți <sucursală-numele>
De asemenea, puteți face acest lucru folosind git remote prune origine
Se prune uscate și șterge de la distanță de urmărire ramuri din o
git branch -r
listare.În plus față de alte răspunsuri, de multe ori am folosi git_remote_branch instrument. L's un plus de folosit, dar devine o modalitate convenabilă de a interacționa cu sucursalele izolate. În acest caz, pentru a șterge:
Mi se pare că eu, de asemenea, utiliza "publicare" și "piesa" comenzi destul de des
O linie comanda delete atât la nivel local, și de la distanță:
D=ramură-numele; git branch -D $D; git push origin :$D
sau adăugați un alias de mai jos pentru a ta ~/.gitconfig; utilizare:
git ucide ramură-numele
Ștergerea Ramuri
Și pentru ștergerea de la distanță ramură:
Șterge de la distanță de ramură
git push origin :<branchname>
Șterge filiala locală
git branch -D <branchname>
Șterge filiala locală pași: