将git管理的子目录切换到子模块

2024-04-22

我们曾经在Rails应用程序中对delayed_job进行了本地破解,位于vendor/plugins/delayed_job中。它作为一次性事件安装并签入主应用程序存储库中的 git。

现在我们决定在 github 上分叉 Delayed_job 并用 git 子模块替换子目录,如所述这里:

http://doblock.com/articles/using-git-submodules-to-manage-plugins-in-rails http://doblock.com/articles/using-git-submodules-to-manage-plugins-in-rails

在此之前,我只是删除了vendor/plugins/delayed_job,而没有将其签入。现在,尽管添加了子模块,主存储库中的git status仍然显示vendor/plugins/delayed_job中的新文件。

我们应该如何处理作为存储库一部分的子目录被删除并用于保存 git 子模块的情况?在将子模块克隆到其位置之前,我们是否应该首先使用 git rm 删除它,或者更彻底地删除它?


假设您不关心当前的内容vendor/plugins/delayed_job在您的工作树中(即,将作为子模块签出的内容已经是工作树中内容的合适替代品),将目录转换为子模块的正常过程如下所示:

git rm -r vendor/plugins/delayed_job
git submodule add github.com:account/delayed_job.git vendor/plugins/delayed_job

当然,GitHub 存储库 URL 可能会有所不同;例如,您可能想要使用 HTTP URL 而不是上面的 SSH URL。

但是,你似乎做了一些不同的事情。据我所知,你做了这样的事情:

rm -rf vendor/plugins/delayed_job
git clone github.com:account/delayed_job.git vendor/plugins/delayed_job

这个过程有两个缺陷:

  1. 平原rm将旧文件保留在 Git 索引中。
  2. 直接克隆会为您提供一个“子存储库”,但不是官方子模块。

假设您没有有意进行任何更改vendor/plugins/delayed_job(您可能不会,因为您正在用子模块替换它),您可以使用以下命令清理这种情况:

git rm --cached -r vendor/plugins/delayed_job
git submodule add github.com:account/delayed_job.git vendor/plugins/delayed_job

清理掉所有的vendor/plugins/delayed_job索引中的条目应该可以解决您的“仍然显示新文件”问题。使用git submodule add将创建.gitmodules文件将“子存储库”变成真正的子模块。

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

将git管理的子目录切换到子模块 的相关文章

  • 推送到 Git (GitLab) 时出现错误 401

    我收到错误 Total 4 delta 2 reused 0 delta 0 error RPC failed result 22 HTTP code 401 当推送到 GitLab 上的 git 存储库时 它曾经有效 我遇到了同样的问题
  • 未处理的拒绝(ChunkLoadError):加载块 1 失败

    我基本上想做一个poc将我的主应用程序的某些部分提取到一个单独的包中 我已在我的 git 存储库中构建了一个示例单独包myapp poc ui https github com prabhatmishra33 myapp poc ui 现在
  • 2017 年在 OS X 上从源代码构建 Apache Hadoop

    到目前为止 我已经分叉了 Git 存储库 https github com apache hadoop 我一直在寻找有关如何从源代码构建的信息 我尝试过以下命令 mvn package Pdist Dtar DskipTests 这导致了以
  • GitHub:本地使用 wiki:首次推送到 GitHub wiki 时出错

    这个问题我搜索了很多次 还是无法解决 假设我从 user1 分叉了一个存储库 我们将其命名为 repo1 现在我也想分叉该存储库的 Wiki 部分 当您分叉存储库时 GitHub 不会为您做任何事情 https stackoverflow
  • 如何在 git 中使用 --work-tree 选项?我不断收到错误消息

    我有一个普通的存储库 其中有一个工作树和一个与工作树位于同一目录中的 git 文件夹 我正在尝试使用以下命令从该位置外部运行 git 命令 git git dir path to repo git work tree path to rep
  • 如何避免获取 .repo/manifest.xml?

    如何避免获取 repo manifest xml 故意修改的 我不想在回购同步期间对其进行修改 我已经做了一个repo init 这一步就完成了 我对manifest xml做了一个小修改 删除了一些同步不需要的项目 当我们进行存储库同步时
  • 如何在 git log 中查看提交的 git bisect 状态?

    我正在做 git bisect 到目前为止我发现了一些好的和坏的提交 我可以通过运行来确认git bisect log 但是 如果我为我的分支运行 git loggit log graph decorate full origin mast
  • 如何设置PS1使git和conda都可以在bash中显示?

    我的 bashrc show a short way shortwd num dirs 3 pwd symbol newPWD PWD HOME if echo n newPWD awk F print NF gt num dirs the
  • git:显示所有已修改的文件 - 已暂存和未暂存

    我需要一个命令给我所有修改过的文件 这包括暂存 即新添加的文件 和非暂存更改 在普通列表我可以在脚本中使用它 虽然这个问题可能听起来很熟悉 但我只找到接近我想要做的命令 git ls files m 列出 非分阶段 修改但忽略了上演的和新的
  • 两个人同时在 git 中处理一个文件[重复]

    这个问题在这里已经有答案了 可能的重复 当两个对等点同时将更改推送到同一个远程时 git 如何工作 https stackoverflow com questions 4643998 how git works when two peers
  • Git 注释详细信息

    我读了this http git scm com 2010 08 25 notes html and this https github com blog 707 git notes display但仍然认为它们晦涩难懂 目前为止了解到 创
  • GITLAB SSL证书问题:无法获取本地颁发者证书

    我正在尝试在 gitLab 中推送我的第一个项目 但出现此错误 致命 无法访问 https git SSL证书问题 无法获取本地颁发者证书 最后我在这里找到了解决方案https newbedev com invalid ssl certif
  • 是否可以在一台机器上使用 GitHub 和 GitLab?

    我的账户位于GitHub and GitLab 我生成了 RSA 密钥并将其添加到我的帐户中GitLab 但现在我需要与GitHub在第二个项目上 我知道GitLab和GitHub都使用git 请告诉我是否可以在一台机器上使用 GitHub
  • CodeCommit 错误 Elastic Beanstalk (AWS)

    运行后 pip install upgrade awsebcli 尝试执行以下操作时出现以下错误 eb deploy 无法将代码推送到 CodeCommit 存储库 错误 CommandError 处理 git 命令时发生错误 错误代码 1
  • 预提交钩子 git 错误

    我正在尝试在 python 中执行预提交 git hook 以检查文件的行长度是否小于 80 个字符 但是我收到没有此类文件 目录的错误 我在 fedora 上并设置了 usr bin python help 将不胜感激 usr bin e
  • Git:设置仅获取远程?

    当我跑步时git remote v在我配置了远程的 Git 存储库之一中 我看到每个远程都具有获取和推送规范 git remote v
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • git 克隆密码存储或缓存在哪里?

    环境定义 使用Windows 10操作系统 我使用 githttps git scm com https git scm com 和 Github 的 Git Shell 背景 当我发出如下所示的 git clone 命令时 git clo
  • 如何在 NetBeans 中执行“git Blame”?

    NetBeans 内置了对 git 的支持 我可以做一个git blame在 NetBeans 内 如果是这样 怎么办 I googled https www google nl search q netbeans git blame它 但
  • git log over 使用 --follow 时限制输出? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 在以下服务

随机推荐

  • hibernate是否支持count(*) over()

    我试图避免必须为计数创建一个单独的查询 为实际查询创建一个单独的查询 我发现 SessionImpl createQuery 需要相当多的时间来执行复杂的查询 通过将 count 和主查询结合起来 我可以消除一个 createQuery 调
  • 我们如何修复透明/半透明可组合项上的材质阴影故障?

    如果您还不知道 Android 的材质阴影存在一个缺陷 即材质设计及其表面 照明和高度概念带来的阴影 另外 如果您不知道 Compose 使用许多与View框架 包括那些负责所述阴影的框架 因此它具有与View是的 至少现在是这样 Card
  • 将数据传递到startup.cs

    如何将数据传递到startup cs 这是用于集成测试使用WebHostBuilder and TestServer 我需要根据测试夹具传递不同的数据 因此 例如 不想从配置文件中提取它 数据将提供给startup cs中注册的中间件 文档
  • 使用 Python Pandas 使用每日数据计算月平均值

    我有一个包含四列的文本文件 年 月 日和雪深 这是 1979 年至 2009 年 30 年期间的每日数据 我想使用 pandas 计算 360 个 30 年 X 12 个月 个人月平均值 即隔离 1979 年 1 月 1979 年 2 月
  • 页面速度洞察删除 Google Recaptcha 未使用的 JavaScript

    我有一个网站在 Google Page Speed Insights 上得分很高 但它显示了一个性能问题 并显示此文件的 删除未使用的 JavaScript https www gstatic com recaptcha releases
  • 填充网格的最小矩形区域数

    假设我们有一个网格 并且希望使用尽可能少的颜色 每个区域一种颜色 在其上绘制矩形区域 有一些单元格已经被涂成黑色并且无法被涂掉 有没有多项式算法可以解决这个问题 经过测试 我发现这种情况的解决方案是9 因为我们需要9种不同的颜色来绘制填充整
  • 保持 GridView 中的图像处于选中状态

    我做了什么 大家好 我有一个 GrindView 我填充了我的数据库 现在图像显示在那里并且可以滚动 但是当我点击它时 它们不会保持选中状态 为了查看选择了哪张图片 我构建了一条 Toastmessage 它显示了我使用 onIemClic
  • 如何计算两个整数的相似度?

    其实很难描述 我想实现一种算法 该算法可以逐个比较两个给定整数 数字 具有相同 长度 的相同位置的数字 当我在基于 10 的系统中进行计算时 它是相同的 十的幂 它应该返回平等等级 如下所示 4491 和 1020 0 4491 和 412
  • 需要 div 来填充两个 div 之间的间隙

    给定以下 HTML div div header div div content div div footer div div 以及以下 CSS wrapper min height 100 position relative margin
  • 对唯一顺序索引的多索引 pandas 数据帧进行切片和赋值

    我想选择并更改数据框单元格的值 该数据帧使用了 2 个索引 datetime 和 idx 两者都包含唯一且连续的标签 datetime 索引具有日期时间类型的日期时间标签 idx 具有整数值标签 import numpy as np imp
  • ui-router deferIntercept 和状态参数

    我使用 ui router 的新 deferIntercept 来更新浏览器 url 而无需重新加载 我的控制器 rootScope on locationChangeSuccess function e newUrl oldUrl e p
  • Python AST 中的 ExtSlice 节点表示什么语法?

    我正在费力地浏览Pythonast模块并且无法弄清楚切片定义 slice Ellipsis Slice expr lower expr upper expr step ExtSlice slice dims Index expr value
  • Pandas 读取 Excel 并跳过带删除线的单元格

    我必须处理一些xlsx从外部来源收到 有没有更直接的方法来加载xlsx in pandas同时还用删除线跳过行 目前我必须做这样的事情 import pandas as pd openpyxl working file r somethin
  • 哪些分类器提供权重向量?

    存在哪些机器学习分类器可以在学习阶段后提供权重向量 我了解 SVM 逻辑回归 感知器和 LDA 还有更多吗 我的目标是使用这些权重向量绘制重要性图 其实任何线性分类器 https en wikipedia org title Linear
  • UITableView - 字母表

    这是我希望添加到带有字母表的 UITableView 中的改进 如果我的表中没有不以字母表字母开头的结果 我不想在 UITableView 中看到此 titleForHeaderInSection 我找不到这样做的方法 您可以查看我当前的实
  • 如何将 XML 转换为字符串而不使用 .NET 中的文件?

    假设我有两个字符串 一种是XML数据 另一个是XSL数据 如果您必须知道的话 xml 和 xsl 数据存储在数据库列中 如何在 C 中转换 XML 而不先将 xml 和 xsl 保存为文件 我也希望输出是一个字符串 来自转换的 HTML 看
  • Scala REPL 中的类型信息

    如果我使用 F 解释器 我可以定义一个简单的函数 如下所示 gt Function to check if x is an integer multiple of y gt let multipleOf x y x y 0 val mult
  • 如何从不在 Spring 容器中的类访问 Spring Bean 的方法

    我不是一个Spring https spring io 亲 所以请耐心等待 我有三门课 class SpringBeanA public aMethod class SpringBeanB Autowired SpringBeanA a p
  • 响应式 adsense 广告单元检查其 div

    根据 Google 的说法 响应式广告根据所提供空间的宽度和高度动态填充可用空间 我们根据广告单元 父容器的宽度动态计算所需的尺寸 然后确定与该宽度相匹配的最佳标准高度 我将响应式 Adsense 单元放置在宽度值为 774px 的 div
  • 将git管理的子目录切换到子模块

    我们曾经在Rails应用程序中对delayed job进行了本地破解 位于vendor plugins delayed job中 它作为一次性事件安装并签入主应用程序存储库中的 git 现在我们决定在 github 上分叉 Delayed