从被删除的远程分支从原始获取?

当我做git fetch origin和起源有一个删除分支,它似乎并没有更新它在我的存储库。 当我做git branch -r它仍然显示origin/DELETED_BRANCH

我怎样才能解决这个问题?

您需要执行以下操作

 git fetch -p 

这将更新远程分支的本地数据库。

http://www.gitguys.com/topics/adding-and-removing-remote-branches/

在某人从远程仓库中删除一个分支之后,当用户进行git pull或git fetch时,git不会自动删除本地仓库分支。 但是,如果用户希望从远程存储库中的本地存储库中删除所有跟踪分支,则可以键入:

git远程修剪起源

注意, git fetch -p的-p参数实际上是“prune”。
无论select哪种方式,不存在的远程分支都将从本地存储库中删除。

您需要执行以下操作

 git fetch -p 

为了同步你的分支列表。 git手册说

-p ,– --prune
获取后,删除远程不再存在的任何远程跟踪引用。 如果标签仅由于默认标签自动跟随或由于--tags选项而被提取,则不会进行修剪。 但是,如果由于明确的refspec(在命令行或远程configuration中,例如,如果远程是使用--mirror选项克隆的)而获取--mirror ,则它们也将被剪枝。

我个人喜欢使用git fetch origin -p --progress因为它显示了一个进度指示器。

这对我有效。

 git remote update --prune 

关于git fetch -p ,它的行为在Git 1.9中改变了,只有Git 2.9.x / 2.10反映了这一点。

见Jeff King( peff )的 提交9e70233 (2016年6月13日) 。
(由Junio C gitster合并- gitster -在承诺1c22105 ,2016年7月6日)

fetch获取之前发生修剪的文件

这在10a6cc8 ( fetch --prune :在提取之前运行修剪,2014-01-02)发生了变化,但似乎没有人在这个讨论中意识到我们正在明确地宣传“after”。

所以文档现在说:

提取之前 ,删除远程不再存在的任何远程跟踪引用

那是因为:

当我们有一个名为“ frotz/nitfol ”的远程跟踪分支来自上一次获取,而上游现在有一个名为“ frotz ”的分支时,获取将无法使用“ git fetch --prune ”删除“ frotz/nitfol git fetch --prune ”从上游。 git会通知用户使用“ git remote prune ”来解决这个问题。

fetch --prune操作之前,通过移动修剪操作来改变“ fetch --prune ”的工作方式。 这样,而不是警告冲突的用户,它会自动修复它。

这里是你如何更新回购信息

 git remote update