【问题标题】:Deleted remote branches still listed in TortoiseGitTortoiseGit 中仍列出已删除的远程分支
【发布时间】:2013-11-24 13:55:29
【问题描述】:

我注意到 TortoiseGit 似乎包含了我曾经创建的每个功能分支,无论是在本地分支还是远程的下拉列表中,尽管许多远程分支在合并到 master 后被删除了。

在 TortoiseGit 中有没有办法将列出的分支与实际存在的分支同步?

还有一点切线......就 Git 本身而言,它是一个被认为与远程完全分离的分支的本地版本?即没有理由删除远程版本应该自动意味着本地版本被删除?

【问题讨论】:

    标签: git tortoisegit


    【解决方案1】:

    issue 1139 中所述,您可以执行Fetch with prune
    或者从 Pull issue 2765 的列表中删除 Remote Branch。

    这将清理仍然在本地引用的任何远程分支,而它们已在 upstream repo 中删除。

    就 Git 本身而言,它是被认为与远程完全分离的分支的本地版本吗?

    可以。
    如果一个分支有一个与之关联的远程跟踪分支,git branch -vv can show it

    但是删除所述远程跟踪分支对本地分支没有影响。

    即没有理由删除远程版本应该自动意味着删除本地版本?

    当然:你误推了一个“test”分支:

    • 你想在远程仓库中删除它
    • 但您非常希望将其保留在本地存储库中以进行一些您无意推动的本地测试。

    【讨论】:

      【解决方案2】:

      对于最后一个问题,我认为这是“分布式”的一个方面。虽然本地 repo 和远程 repo 可以相互共享内容,但它们是独立存在的。

      在实践中,这种设计可以避免麻烦。如果fetch 完全反映了“远程仓库中的本地分支”到“本地仓库中的远程分支”的变化,并且有人在远程仓库中删除了一个分支,我们将丢失某个提交的一个本地指针(可能是最后一个)。

      【讨论】:

        【解决方案3】:

        TortoiseGit 将列出的分支与实际存在的分支同步是一项功能请求。

        至少您可以使用 Shift + Delete 删除您不想要的项目:打开对话框,打开分支列表的组合框,在展开的列表中将鼠标指针放在一个条目上并 shift + 删除它.

        远程分支下拉列表中的项目由 TortoiseGit 缓存。最大尺寸为 25。

        下次要拉取时,建议列表将只包含当前分支的名称。

        【讨论】:

        • 我什么都试过了。似乎 TGit 缓存了分支.... git fetch prune 但 TGit 仍然显示本地或远程不存在且超过 25 个的分支......所以我总是必须“删除”(=删除)分支一个通过其他(36个分支,鼠标右键单击36次,选择删除,用yes确认......
        【解决方案4】:

        您可以从pull窗口中删除本地分支。

        步骤-

        1. 打开拉窗。 (在项目目录中右键,选择 TortoiseGit -> Pull
        2. 选择远程分支下拉菜单并使用键盘箭头键选择要删除的分支。
        3. 选择分支后,在 Windows 操作系统中按 shift + delete 按钮(不确定 mac,您需要为其找到一些组合)。

        第 2 步 - 从远程分支列表中选择分支的图像:

        【讨论】:

          猜你喜欢
          • 2011-07-02
          • 1970-01-01
          • 2016-10-20
          • 2019-05-18
          • 2021-04-15
          • 2015-09-26
          • 2013-03-25
          • 2016-07-08
          相关资源
          最近更新 更多