【问题标题】:How to delete a branch which is already deleted from remote [duplicate]如何删除已从远程删除的分支[重复]
【发布时间】:2021-06-25 09:36:04
【问题描述】:

我与其他开发人员一起使用 Github 存储库开发一个项目。我们做了一个分支,然后在使用它完成后,我们在 Github 上删除了这个分支。但是在我的本地仓库中,我又拥有了这个分支(我在调用git branch --list -a 时看到了它)。它是一个远程分支,但它不再存在于远程仓库中。

我尝试使用git branch -d remotes/origin/<branch>(也使用-D,但这不是问题)。 Git 回答“错误:分支 'remotes/origin/morgan-save-A' non trouvee”。

如果有人有想法,我怎么能删除它?感谢阅读:)

【问题讨论】:

  • 要删除带有git branch 的远程跟踪名称,您必须包含-r 选项。将--prune(或-p)与git fetch 一起使用,或者运行git remote prune,更容易。同时考虑或改为将fetch.prune 设置为true
  • 感谢@torek 和@KaspiR,我不能投票给 cmets(我认为是因为我的名声)。 git fetch --prune origin 进行了预期的操作:)

标签: git git-branch


【解决方案1】:

git fetch --prune 呢@?

来自the docs

在获取之前,删除远程上不再存在的所有远程跟踪引用。标签不会被修剪,如果他们 仅由于默认标签自动跟随或由于 --tags 选项。但是,如果由于显式 refspec(在命令行或远程配置中)而获取标签,则 例如,如果遥控器是使用 --mirror 选项克隆的),那么它们 也需要修剪。提供 --prune-tags 是 提供标签 refspec。

【讨论】:

  • 感谢您的提示,这将很有帮助,但 Git 说 git fetch --prune remotes/origin/<branch> fatal: 'remotes/origin/<branch>' does not appear to be a git repository fatal: Impossible de lire le dépot distant. Veuillez vérifier que vous avez les droits d'acces et que le dépot existe. 也许我必须删除对远程已删除仓库的引用(跟踪)?
  • 您不必提供分支名称,它会修剪所有远程分支。例如git fetch --prune origin 应该为您解决问题
猜你喜欢
  • 1970-01-01
  • 2016-02-12
  • 2018-09-29
  • 1970-01-01
  • 2023-01-12
  • 1970-01-01
  • 2016-07-08
  • 2023-01-16
  • 2017-12-18
相关资源
最近更新 更多