Noriu ištrinti šaką ir vietoje, ir nuotoliniu būdu.
$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.
$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.
$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).
$ git push
Everything up-to-date
$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> origin/bugfix
Already up-to-date.
Ką turėčiau daryti kitaip, kad sėkmingai ištrinti
remotes/origin/bugfix
šaką tiek vietiniu, tiek nuotoliniu būdu?
$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>
Atkreipkite dėmesį, kad daugeliu atvejų nuotolinis vardas yra pradinis
.
Norėdami ištrinti vietinę šaką, naudokite vieną iš šių veiksmų:
$ git branch -d branch_name
$ git branch -D branch_name
Pastaba: Parinktis -d
yra --delete
slapyvardis, kuris ištrina šaką tik tuo atveju, jei ji jau visiškai sujungta su aukštesne šaka. Taip pat galite naudoti -D
, kuri yra --delete --force
slapyvardis, kuris ištrina šaką "nepriklausomai nuo jos susijungimo būsenos." [Šaltinis: man git-branch
]
Nuo Git v1.7.0 galite ištrinti atstumtą šaką naudodami
$ git push <remote_name> --delete <branch_name>
kurį gali būti lengviau įsiminti nei
$ git push <remote_name> :<branch_name>
kuris buvo pridėtas Git v1.5.0 "ištrinti nutolusią šaką arba žymę."
Nuo [Git v2.8.0][git-2.8.0] taip pat galite naudoti git push
su -d
parinktimi kaip --delete
slapyvardį.
Taigi, nuo įdiegtos "Git" versijos priklausys, ar reikia naudoti lengvesnę, ar sudėtingesnę sintaksę.
Iš Skoto Čakono (Scott Chacon) knygos Pro Git 3 skyriaus:
Tarkime, kad baigėte darbą su nutolusia atšaka, tarkime, jūs ir jūsų bendradarbiai baigėte darbą su funkcija ir sujungėte ją į nutolusios atšakos pagrindinę šaką (arba bet kurią kitą stabilios kodo linijos šaką). Nuotolinę šaką galite ištrinti naudodami gana keblią sintaksę
git push [remotename] :[branch]
. Jei norite iš serverio ištrinti savo serverio pataisos šaką, atlikite šiuos veiksmus:$ git push origin :serverfix Norėdami [email protected]:schacon/simplegit.git
- [ištrinti] serverfix
Boom. Jūsų serveryje nebėra šakų. Galbūt norėsite šuniui ant uodegos užrašyti šį puslapį, nes jums prireiks šios komandos ir greičiausiai pamiršite sintaksę. Šią komandą galima prisiminti prisiminus
git push [remotename] [localbranch]:[remotebranch]
sintaksę, kurią aptarėme šiek tiek anksčiau. Jei praleisite[localbranch]
dalį, iš esmės sakysite: "Paimkite nieko iš mano pusės ir padarykite, kad tai būtų[remotebranch]
".
Išleidau git push origin: bugfix
ir viskas puikiai pavyko. Scott Chacon buvo teisus - norėsiu šunų ausis tame puslapyje (arba praktiškai šunų ausis, atsakydamas į tai Stack Overflow).
[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt
Tada turėtumėte tai atlikti kituose kompiuteriuose
# Fetch changes from all remotes and locally delete
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune
kad pakeitimai būtų išplatinti.
Nuotolinei šakai ištrinti taip pat galite naudoti šiuos veiksmus
git push --delete origin serverfix
Tai daro tą patį, ką ir
git push origin :serverfix
bet jį gali būti lengviau įsiminti.
Be kitų atsakymų, dažnai naudoju git_remote_branch įrankį. Jį reikia papildomai įdiegti, bet jis suteikia patogų būdą bendrauti su nutolusiomis šakomis. Šiuo atveju - ištrinti:
grb delete branch
Pastebėjau, kad taip pat dažnai naudoju publish
ir track
komandas