Ik wil een tak zowel lokaal als op afstand verwijderen.
$ 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.
Wat moet ik anders doen om succesvol de tak
remotes/origin/bugfix
branch zowel lokaal als op afstand te verwijderen?
$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>
Merk op dat in de meeste gevallen de naam op afstand origin
is.
Om de lokale tak te verwijderen gebruik je één van de volgende manieren:
$ git branch -d branch_name
$ git branch -D branch_name
Note: De -d
optie is een alias voor --delete
, die de tak alleen verwijdert als deze al volledig is samengevoegd in zijn stroomopwaartse tak. Je zou ook -D
kunnen gebruiken, wat een alias is voor --delete --force
, wat de tak verwijdert "ongeacht zijn samengevoegde status." [Bron: man git-branch
]
Vanaf Git v1.7.0, kun je een remote branch verwijderen met
$ git push <remote_name> --delete <branch_name>
wat misschien makkelijker te onthouden is dan
$ git push <remote_name> :<branch_name>
die was toegevoegd in Git v1.5.0 "om een remote branch of een tag te verwijderen."
Vanaf [Git v2.8.0][git-2.8.0] kun je ook git push
met de -d
optie gebruiken als een alias voor --delete
.
Daarom zal de versie van Git die je geïnstalleerd hebt dicteren of je de makkelijkere of moeilijkere syntax moet gebruiken.
Uit Hoofdstuk 3 van Pro Git door Scott Chacon:
Remote Branches Verwijderen
Stel dat je klaar bent met een remote branch - zeg, jij en je medewerkers zijn klaar met een functie en hebben die samengevoegd in de master branch van je remote (of welke branch dan ook waar je stabiele code lijn in zit). Je kunt een remote branch verwijderen met de nogal stuntelige syntax
git push [remotename] :[branch]
. Als je je server-fix branch van de server wilt verwijderen, voer je het volgende uit:$ git push origin :serverfix Naar [email protected]:schacon/simplegit.git
- [verwijderd] serverfix
Boem. Geen branches meer op je server. Misschien wil je deze pagina even lezen, want je zult dat commando nodig hebben, en je zult waarschijnlijk de syntax vergeten. Een manier om dit commando te onthouden is door te denken aan de
git push [remotename] [localbranch]:[remotebranch]
syntaxis die we eerder hebben besproken. Als je het[localbranch]
gedeelte weglaat, dan zeg je eigenlijk, "Neem niets van mijn kant en maak er[remotebranch]
van".
Ik gaf git push origin: bugfix
uit en het werkte prachtig. Scott Chacon had gelijk-ik wil die pagina hondenoor (of virtueel hondenoor door dit te beantwoorden op Stack Overflow).
[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt
Dan zou je dit op andere machines moeten uitvoeren
# Fetch changes from all remotes and locally delete
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune
om veranderingen door te geven.
U kunt ook het volgende gebruiken om de remote branch te verwijderen
git push --delete origin serverfix
Dat doet hetzelfde als
git push origin :serverfix
maar het is misschien makkelijker te onthouden.
In aanvulling op de andere antwoorden, gebruik ik vaak de git_remote_branch tool. Het's een extra installatie, maar het geeft je een handige manier om met remote branches om te gaan. In dit geval, om te verwijderen:
grb delete branch
Ik merk dat ik de publish
en track
commando's ook vaak gebruik