我尝试从项目中删除几个分支:
leo:Project leo$ git push origin --delete effects
To https://github.com/gituser/Project.git
- [deleted] effects
leo:Project leo$ git push origin --delete viewport
To https://github.com/gituser/Project.git
- [deleted] viewport
但在fetch --prune
之后说
获取后,删除不再有的任何远程跟踪引用 存在于遥控器上。
我仍然在本地计算机上删除了分支:
leo:Project leo$ git fetch -p
leo:Project leo$ git branch -a
develop
effects
* master
viewport
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
有什么建议吗?
答案 0 :(得分:5)
该命令完全按照它所说,它删除了“远程跟踪引用”。这意味着连接到远程存储库上的分支的任何本地分支都将断开连接,仅此而已。这尤其意味着本地分支在之后仍然存在。
要删除分支,请使用git branch -D <branchname>
,或者首先查看分支的内容,确保不会丢失任何提交。
答案 1 :(得分:2)
git fetch --prune
仅删除工作树中远程删除的远程引用。远程引用位于remotes/*
下(例如,remotes/origin/master
)。
git fetch --prune
不会删除本地分支 - 即使本地分支跟踪远程引用它也不会被删除(例如,通过设置git branch --set-upstream-to=origin/master master
)。这是有意的。想象一下,你有一个本地分支,其上有一些提交,然后有人删除了远程分支,你的本地更改就消失了。
但是,要删除本地分支机构问题git branch -D NAME
,请让您不要在该分支机构上提交您想要保留的内容。