【发布时间】:2020-02-08 23:43:20
【问题描述】:
我在 Windows 上遇到了一个“奇怪”的 Git 问题,我不确定最近是否发生了一些变化,例如添加了缓存机制或关闭。
我在本地有一个分支:branch_A,该分支已从远程删除。我怎么知道?因为……
- 我查看了 Github PR,它被合并了,分支被删除了
- 我运行了命令
git branch -r | grep branch_A,没有返回任何结果
由于某种原因,命令:
git checkout master && git pull origin master && git fetch -p
没有告诉我从远程删除的所有分支。换句话说,它显示了一些从远程删除的分支,但也错过了其他一些被删除的分支。
这导致我最终得到死分支,让我很难知道我应该保持哪些分支更新,并且我必须通过所有 PR 检查分支是否被删除,以便我清理我的本地存储库。
注意:我不希望该命令在本地删除任何分支,这是没有意义的,因为 git 不知道我是否需要它(正如@Chris 在其答案中所说)
我运行的 Git 版本是:git version 2.23.0.windows.1。
有人知道这里可能出了什么问题吗?我错过了什么吗?
【问题讨论】:
-
一方面,这是出乎意料的(“没有告诉我分支已被删除”),我只是在
2.22.0.windows.1版本上尝试过,它输出清楚` - [deleted](无) - > origin/testbranch`(顺便说一句,我猜你不是第一个搜索 git 的 cashing 机制的人...... ;-)) -
注意
git pull运行git fetch作为它的第一步。您可以使用git pull -p将-p传递给git fetch;或者你可以手动运行git fetch,通过-p,手动运行第二条命令;或者您可以在本地或全局配置中将fetch.prune设置为true,以使git fetch每次假设-p。