36

我注意到 TortoiseGit 似乎包含我曾经创建的每个功能分支,包括本地分支和远程的下拉列表,即使许多远程分支在合并到 master 后被删除。

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

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

4

4 回答 4

33

如issue 1139所述,您可以使用 prune进行Fetch或从 Pull issue 2765
中的列表中删除 Remote Branch 。

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

http://wiki.typo3.org/wiki/images/1/18/Tortoisegit_fetch.gif

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

有可能。
如果一个分支有一个与之关联的远程跟踪分支,git branch -vv可以显示它

但是删除所述远程跟踪分支与本地分支无关。

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

当然:你错误地推了一个' test'分支:

  • 你想在远程仓库中删除它
  • 但是您非常希望将其保留在本地存储库中以进行一些您无意推动的本地测试。
于 2013-11-12T12:32:29.753 回答
2

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

脚步-

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

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

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

于 2020-12-28T14:55:58.247 回答
1

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

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

于 2013-11-12T12:58:49.167 回答
0

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

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

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

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

于 2020-02-07T15:48:25.810 回答