我在远程删除了一个分支,如何在本地同步?

I deleted a branch in remote, how do I synchronize in local?

我在 Github 上创建了一个存储库。我有两个开发环境,我访问 Github 和 Github for Windows 两个。

在两个开发环境之一上,我删除了一个分支并在Github中单击了"synchronize" for Windows。该分支已在 Github 中适当删除。当我从我的其他开发环境同步时,有一个选项 "publish" 要删除的分支,但是 none 删除它。

如何让 git 或 Github 为 Windows 进行完全同步,包括删除过时的分支?

是与否——取决于您 "deletion of a local branch" 的真正意思。

快速回答

  • 不,不可能让远程仓库删除一个普通的 在您的本地存储库中分支。

  • 是的,可以要求 Git 删除您本地的 远程 分支 特定删除的分支的存储库 命名远程(例如"origin")。

    这个是通过运行

    实现的
    git remote prune origin
    

    git fetch --prune
    

解释

请先了解 Git 与远程存储库一起使用的模型是不对称的:本地存储库中的分支名称与远程存储库中的分支名称完全匹配这一事实没有任何意义 至 Git.

原因有两个:

  • 您的本地存储库被 Git 视为完全独立的 并且不依赖于任何其他存储库。
  • 您的本地存储库能够与任意数量的 远程存储库,以及……
  • ...这些存储库可能完全没有 "conceptual" 关系 使用您的本地存储库:例如,可以从托管 Linux 源代码的存储库中获取数据到包含 你的周末玩具项目。

因此,虽然 Git 有某些助手将本地分支与特定的远程分支联系起来,但这些联系是不对称的。 特别是,Git 将您的本地历史视为 "sacred", 和破坏性操作需要您的明确操作。