git Remote prune、git prune、git fetch --prune 等有什么区别

2023-11-27

我的情况是这样的......在同一个存储库上工作的人已经从他的本地和远程存储库中删除了一个分支......

大多数在 Stack Overflow 或其他网站上询问此类问题的人都会遇到分支问题仍然显示在远程跟踪分支列表中的问题git branch -a在底部:

* master
  develop
  feature_blah
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/feature_blah
  remotes/origin/random_branch_I_want_deleted

然而,在我的情况下,不应该在那里的分支是本地的:

* master
  develop
  feature_blah
  random_branch_I_want_deleted
  remotes/origin/master
  remotes/origin/develop
  remotes/origin/feature_blah

当我执行以下任何操作时,它不会在本地被删除:

$ git prune

我也尝试过:

$ git remote prune origin
$ git fetch --prune

更多有用的信息:当我检查时git remote show origin这是它的样子:

* remote origin
Fetch URL: utilities:homeconnections_ui.git
Push  URL: utilities:homeconnections_ui.git
HEAD branch: master
Remote branches:
 master                        tracked
 develop                       tracked
 feature_blah                  tracked
 other123                      tracked
 other444                      tracked
 other999                      tracked
Local branches configured for 'git pull':
 develop                      merges with remote develop
 feature_blah                 merges with remote other999
 master                       merges with remote master
 random_branch_I_want_deleted merges with remote random_branch_I_want_deleted
Local refs configured for 'git push':
 develop         pushes to develop     (local out of date)
 master          pushes to master      (up to date)
 feature_blah    pushes to feature_blah(up to date)

请注意,它仅出现在标题为Local branches configured for 'git pull':

Why?


我不怪你为此感到沮丧。最好的观察方式是这样的。每个远程分支可能有三个版本:

  1. 远程存储库上的实际分支
    (例如,远程仓库位于https://example.com/repo.git, refs/heads/master)
  2. 您本地该分支的快照(存储在refs/remotes/...)
    (例如,本地回购,refs/remotes/origin/master)
  3. 以及可能正在跟踪远程分支的本地分支
    (例如,本地回购,refs/heads/master)

让我们从git prune。这删除了objects不再被引用的内容,它不会删除引用。就您而言,您有当地分支机构。这意味着有一个名为random_branch_I_want_deleted它指的是代表该分支历史的一些对象。所以,根据定义,git prune不会删除random_branch_I_want_deleted。真的吗,git prune是一种删除 Git 中累积但未被任何内容引用的数据的方法。一般来说,它不会影响您对任何分支的看法。

git remote prune origin and git fetch --prune两者都在下面的引用上运行refs/remotes/...(我将这些称为远程引用)。不影响当地分支机构。这git remote如果您只想删除特定远程下的远程引用,则 version 很有用。否则,两者会做完全相同的事情。所以,简而言之,git remote prune and git fetch --prune对上面的2号进行操作。例如,如果您使用 git web GUI 删除了一个分支,并且不希望它再显示在本地分支列表中(git branch -r),那么这就是您应该使用的命令。

要删除本地分支,您应该使用git branch -d (or -D如果它没有在任何地方合并)。 FWIW,如果远程分支消失,没有 git 命令可以自动删除本地跟踪分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git Remote prune、git prune、git fetch --prune 等有什么区别 的相关文章

  • Git worktree prune - 它有什么作用?

    我在用着git 版本 2 14 2 windows 2并调用 git worktree add
  • 使用 ssh-keygen 创建 SSH 密钥不会创建 .ssh 文件夹

    我正在尝试使用 msysgit 创建我的公共 私有 rsa 密钥对 我运行这个命令 ssh keygen C email protected cdn cgi l email protection t rsa 一切看起来都很好 我收到消息了
  • git Push Remote:警告:hooks.mailinglist 有多个值

    我刚刚从使用 gitosis 升级到 gitolite 电子邮件通知适用于所有存储库 但对于 gitolite admin 存储库 我在推送时收到此警告 推送很好 git push remote warning hooks announce
  • 为什么 git 默认执行快进合并?

    来自 Mercurial 我使用分支来组织功能 当然 我也希望在我的历史中看到这个工作流程 我使用 git 开始了我的新项目并完成了我的第一个功能 当合并该功能时 我意识到 git 使用快进 即如果可能的话 它会将我的更改直接应用到主分支
  • Git:repo 包含一个空目录 - 会发生什么?

    Git 跟踪文件 而不是目录 https stackoverflow com questions 5091017 和我们目前不能add空目录 https stackoverflow com questions 11600188 The 标准
  • 使用 Homebrew 安装 Git 时出现问题 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Homebrew 升级 Git 时出现问题 https stackoverflow com questions 12362021 problems upgrading git with home
  • 显示其 diff 包含特定字符串的所有提交

    正如标题所说 我想找到每个差异包含特定字符串的提交 目前 我使用 git log p filename 它显示了不太像每个差异的界面 我在其中搜索字符串 然后我回溯以找到实际的提交消息 简单的替代方案可能是将 git log p 通过管道传
  • GIT 或 SVN 或...适用于前端开发人员

    我最近开始将一些项目导入到工作中的 Subversion 存储库中 在接下来的几周内 我希望团队中的每个人都能负责自己的源代码控制管理 我选择 SVN 而不是 GIT 的原因是我想要everyone团队中的人员 包括设计师 前端人员 集成商
  • Jenkins 多分支:更改 Groovy 的工作描述

    我在詹金斯的多分支项目工作正常 但我想修改job描述 默认情况下为 完整项目名称 xxxx 以更有意义 我可以使用以下命令轻松更改构建描述currentBuild当我的变量Jenkinfile已执行 但我不知道如何修改父作业描述 我的用例是
  • 如何使用 Groovy 获取自上次成功构建以来 Jenkins 的提交信息?

    如何编写自定义 groovy 脚本以轻松操作自上次成功构建以来所有提交的数据 在 gradle maven 步骤之后添加新的构建步骤 gt 执行系统 groovy 脚本 适配代码 import com tikal jenkins plugi
  • 如何使用和理解wso2 git仓库?

    我刚刚开始对wso2感兴趣 我正在寻找移动设备管理解决方案 所以我测试了 wso2 EMM 但我发现了一些限制 我想知道是否可以自己实现 我的问题是我完全迷失在 wso2 git 存储库中 有没有我错过的指导书或逻辑 如果有人帮助我解决这个
  • libgit2 返回:Refspec 'refs/heads/origin/HEAD' 在 TortoiseGit 中未找到错误

    启动 TortoiseGit 时出现此错误 无法获取所有参考文献 libgit2 返回 未找到 Refspec refs heads origin HEAD 虽然很烦人 但这并不妨碍我使用 TortoiseGit 然而 我想让它消失 因为它
  • Git 存储库错误并显示消息,它不是存储库...但它是

    我有一个 git repo 去年我一直在同一个盒子上使用 今天我跑步git status并得到错误消息 fatal Not a git repository or any parent up to mount parent home Sto
  • IntelliJ Git 集成 - git --version 空输出

    我目前正在尝试使用 IntelliJ 2016 2 的 Git 集成 但每当我将其指向可执行文件时 我都会遇到以下问题 这在技术上并不会阻止集成工作 但它确实会导致更新索引等问题 我正在运行 Windows 7 完全全新安装 但我在以前的
  • 为什么 git 无法识别我的本地存储库?

    我刚刚回到一个我已经使用 Git 大约 6 个月的项目 看到了这个 cd d DEVELOP BlenderAe My repo root git status fatal not a git repository or any of th
  • github Diff 截断错误

    在 github 中发出拉取请求并审查更改时 我们收到了 Diff Truncated 错误 如下所示 任何人都可以帮助解决这个问题 拉取请求可能会触发以下提到的限制之一GitHub 支持 https stackoverflow com a
  • git 工作目录中的更改拒绝恢复

    我的 git 工作目录中有五个文件git status显示为已修改 当我git diff他们 整个文件显示为已更改 我有core autocrlf true但似乎没有效果 当我试图从同事那里获取更改时 真正的问题出现了 修改 的文件之一会被
  • Git:如何维护项目的两个分支并仅合并共享数据?

    假设我有一个项目的两个分支 IMClient MacOS 和 IMClient Windows 它们的代码仅 比方说 一个目录 main 有所不同 所有其他目录都包含与系统无关的代码并且可以互换 有些工作人员在 Windows 版本上工作
  • 如何将 git-svn 与 svn+ssh url 一起使用

    我喜欢在cygwin中使用git svn clone使用我们公司 svn 存储库的命令 这个的网址是svn ssh svn
  • 使用 SourceTree 克隆存储库

    有人可以给我一个简单的使用 SourceTree 克隆存储库的快速演练吗 在书签中 我单击克隆存储库 对于源路径 我粘贴如下所示的 URL 电子邮件受保护 cdn cgi l email protection 客户端 应用程序名称 ios

随机推荐

  • MVC Java:控制器如何为视图的子类设置侦听器

    我有一个控制器和一个带有许多儿童视图的视图 其中有儿童 示例 JPanel 中的 JPanel 具有供控制器传递给模型的按钮和字段 我目前的做法是在视图中实例化 控制器 该视图具有动作侦听器并访问我的单例模型 这可行 但它绝对不是 MVC
  • 以编程方式合并两个 svg 路径元素

    我正在从 SVG 路径渲染地图 使用j矢量图 在某些情况下 一个区域必须与相邻区域合并 不幸的是 这两个区域没有相互接触 我必须进行插值来填充之间的空间 jVectormap 使用非常简单的 SVG 路径M设置绝对起点和l连接相对点 SVG
  • 如何禁用 DrawerLayout Shadow

    我正在尝试禁用 DrawerLayout 阴影 但没有找到相关答案 有人可以帮忙吗 提前致谢 我也尝试过 setDrawerLayout null Gravity Left 但它仍然不起作用 mDrawerLayout setScrimCo
  • jQuery Mobile 与 AngularJs 页面导航

    我正在使用 jQuery Mobile 和 AngularJS 开发一个混合移动应用程序 我决定将两者混合使用 以实现以下目的 jQuery Mobile 良好的用户界面功能 不太重量级 例如与 Sencha Touch 相比 Angula
  • 复选框不会在淘汰赛中被选中

    我有一个复选框和用于更新数据的复选框的单击事件 当我单击复选框时 数据正在更新 但复选框不会被选中 这是我的 html 代码 td td
  • 无效的代码签名权利[重复]

    这个问题在这里已经有答案了 我已遵循应用程序商店支持人员为寻求帮助而放置的所有程序 但每当我上传后提交应用程序时 状态都会变为 无效的二进制文件 并在邮件中显示以下消息 Invalid Code Signing Entitlements Y
  • 当所有类型不受支持时 HTML5 视频后备

    在 HTML5 规范中 它建议您将后备材料放入
  • 使用 JavaScript 或 jQuery 检测 Mac OS X 或 Windows 计算机的最佳方法

    因此 当用户使用 Mac 时 我尝试将 关闭 按钮移至左侧 而当用户使用 PC 时 将 关闭 按钮移至右侧 现在我通过检查用户代理来做到这一点 但它很容易被欺骗 无法进行可靠的操作系统检测 有没有可靠的方法来检测浏览器运行的操作系统是Mac
  • removeCallbacks 不停止可运行

    我从一个方法调用 myHandler postDelayed mMyRunnableHide 6000 其中调用 public Runnable mMyRunnableHide new Runnable public void run mT
  • ng-bootstrap - Typeahead 下拉宽度

    我开始使用 ng bootstrap Typeahead 组件 我对此非常满意 我想要实现的一件事是让下拉项具有与输入字段相同的宽度 而默认行为根据文本长度应用宽度 应该是基本的CSS 我创建了一个基本的Example在普朗克 正如您所注意
  • iOS 设备和模拟器的构建实际上有何不同?

    既然iOS模拟器是模拟器 为什么我需要专门为其构建呢 模拟器的重点不在于它运行real某种虚拟机 沙箱中的代码 那么 设备 模拟器构建方式的实际差异是什么 以及生成的应用程序有何不同 An application running nativ
  • Bouncy Castle scrypt 实现

    我目前正在使用以下方法实现密码哈希scrypt 我已经找到了一个不错的scryptGitHub 上的实现 令我惊讶的是我还发现了一个scryptBouncy Castle 库中的实施 该类没有记录 维基百科没有提到 Bouncy Castl
  • 64位和32位进程互通 boost::message_queue

    各位 美好的一天 我目前正在尝试找到一种在 64 位进程和 32 位进程之间传递数据的方法 由于它是一个实时应用程序并且两者都在同一台计算机上运行 因此我很难使用共享内存 shm 当我在寻找一些使用 shm 的同步机制时 我对 boost
  • Android:使用UIL和TouchImageView不显示ImageView

    我正在尝试从以下位置实现加载图像URL with Universal Image Loader and zoom with TouchImageView Mike Ortiz 但当尝试查看图像时 黑屏被展示 我已经检查过 URL 是否正确
  • Seaborn ImportError:DLL 加载失败:找不到指定的模块

    我收到 ImportError DLL 加载失败 找不到指定的模块 导入模块时seaborn 我尝试卸载seaborn和matplotlib 然后使用重新安装 pip install seaborn 但没有运气 我仍然遇到同样的错误 Imp
  • ora-06553 pls-306 调用“ogc_x”时参数数量或类型错误

    我正在尝试在 oracle 10g 中进行查询 事情是这样的 SELECT FROM h2h reg reg h2h cat estatus est WHERE reg FECH APLICACION SYSDATE AND REG ID
  • 使用 Hibernate Validator (JSR 303) 进行跨领域验证

    Hibernate Validator 4 x 中是否有跨字段验证的实现 或第三方实现 如果不是 那么实现跨字段验证器的最简洁方法是什么 例如 如何使用 API 来验证两个 bean 属性是否相等 例如验证密码字段与密码验证字段是否匹配 在
  • Jquery UI 可拖动不会调整其他 DIV 的大小

    在这嘭嘭嘭我有三个DIVs 除以另外两个DIV可拖动的 灰色 当可拖动时DIVs 向上 向下或向左 向右拖动 其他DIVs 应该调整大小 第一个可拖动 DIV 工作正常 左侧的 DIV 可以垂直调整其他 DIV 的大小 但第二个可拖动DIV
  • 如何在 SQL Server 非标准架构表上使用 dplyr tbl

    我的问题是我该如何使用dplyr函数 例如tbl 在不使用默认 dbo 架构的 SQL Server 表上 为了获得更多上下文 我尝试将此处给出的 R 数据库示例应用到我自己的表中 https db rstudio com 向下滚动到标题为
  • git Remote prune、git prune、git fetch --prune 等有什么区别

    我的情况是这样的 在同一个存储库上工作的人已经从他的本地和远程存储库中删除了一个分支 大多数在 Stack Overflow 或其他网站上询问此类问题的人都会遇到分支问题仍然显示在远程跟踪分支列表中的问题git branch a在底部 ma