回答

收藏

如何在本地和远程删除 Git 分支?

技术问答 技术问答 380 人阅读 | 0 人回复 | 2023-09-11

我想在本地和远程删除一个分支。$ G1 E! M# ?9 ]. X9 Q# v# Z& D2 r
试图删除远程分支失败
    $ git branch -d remotes/origin/bugfixerror: branch 'remotes/origin/bugfix' not found.$ git branch -d origin/bugfixerror: branch 'origin/bugfix' not found.$ git branch -rd origin/bugfixDeleted remote branch origin/bugfix (was 2a14ef7).$ git pushEverything up-to-date$ git pullFrom github.com:gituser/gitproject* [new branch] bugfix -> origin/bugfixAlready up-to-date.
    # b% ^% N! _  c+ ]" s2 m' i
我该怎么办?remotes/origin/bugfix成功删除本地和远程分支?
; B% q. g( Y; ^2 V# V" T" K, ]                                                               
2 P6 G- }& [- W# Z$ F4 {. a    解决方案:                                                                4 E8 B/ R+ T  G  k" q
                                                                执行摘要

    ' A1 p  T4 \7 t6 a4 B
  • $ git push -d  ; P+ I: b+ i/ Z0 A- r6 t$ t3 P
  • $ git branch -d
    # R3 e3 A8 F) ?" b
注意:在大多数情况下,将是origin.. I, ]4 H  z+ `, ^" m2 R
删除本地分支要删除本地请使用以下方法之一:  z/ R3 I, @! f$ B& [# n4 Q1 q
$ git branch -d
; {# g/ W" x( M$ d1 B2 I! u. o2 x$ git branch -D
3 U5 l* C$ m/ U' R$ `) N" e2 a: f# x- o该-d选项是 的别名--delete,该分支只有在分支完全合并到上游分支时才被删除。; {# F3 l8 |3 p8 k/ u
该-D选项是 的别名--delete --force,它删除了无论合并状态如何的分支。[来源:man git-branch]
0 y9 L- g* W. C/ U6 C如果您试图删除当前选定的分支,您将收到错误的信息。
删除远程分支从Git v1.7.0 开始,您可以使用删除远程分支
& Z4 x5 J# `5 p$ git push  --delete
1 x; R- t3 I7 s! u这可能比& t. Z5 Y5 J) P2 m2 l! y+ X
$ git push  :: n4 u& _- e& B, n6 c) L
这是在Git v1.5.添加到0中的删除远程分支或标签。
( W' s8 o2 L; h; k与开始的Git V2.8.0,您还可以使用git push与-d选项是别名--delete。所以,你安装的 Git 版本将决定您是否需要使用更简单或更困难的语法。
) A5 R( w- p1 @3 m2 n- \% F, |删除远程分支 [2010年 1 月 5 日原答案]来自Scott Chacon的Pro Git第 3 章:: v+ ]& b4 ^( r! F6 k0 P& Q
删除远程分支假设你已经完成了一个远程分支——例如,你和你的合作伙伴已经完成了一个特征,并将其合并到你的远程分支(或你的稳定代码银行的任何分支)。您可以使用笨拙的语法删除远程分支git push [remotename] :[branch]。如果要从服务器中删除 server-fix 分支,请操作以下命令:. i* t7 a* B* w" l* n9 Q* |4 b- p
$ git push origin :serverfixTo git@github.com:schacon/simplegit.git - [deleted]         serverfix繁荣。你的服务器上没有分支机构。你可能想仔细阅读这个页面,因为你需要这个命令,你可能会忘记语法。记住这个命令的一种方法是回忆它git push [remotename] [localbranch]:[remotebranch]我们以前讨论过的语法。如果你不吃,那么[localbranch]那么你基本上是在说,不要站在我这边,让它变成[remotebranch]。”! K9 t* O1 _" c/ m
我发布了git push origin: bugfix,它运行得很好。Scott Chacon 是对的-我想听那个页面(或者在 Stack Overflow 回答这个问题其实听听)。
) u2 g9 r/ `6 |3 J  _$ X所以你应该在其他机器上执行这个
' c) b% ]0 j8 G. R$ d; `/ S# n7 Y# Fetch changes from all remotes and locally delete # remote deleted branches/tags etc# --prune will do the job :-;git fetch --all --prune传播变化。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则