如何使用现有存储库添加/更新子模块以节省带宽?

2024-04-08

假设我有一些大型存储库 BigRepo,并且我想将其添加为另一个项目的子模块。通常我会这样做

$ git submodule add [email protected] /cdn-cgi/l/email-protection/me/BigRepo.git

但我不想再次下载整个内容。幸运的是我已经结账了,所以我尝试一下

$ git clone ../BigRepo
Cloning into 'BigRepo'...
done.
$ git submodule add [email protected] /cdn-cgi/l/email-protection/me/BigRepo.git
Adding existing repo at 'BigRepo' to the index

伟大的!除了

  1. The origin子模块中的远程指向../BigRepo;我希望它指出[email protected] /cdn-cgi/l/email-protection/...
  2. The .git文件夹位于BigRepo/.git代替.git/modules/BigRepo

那么这样做的正确方法是什么?


需要进行一些修复,因为您想要丢弃该代理存储库的所有证据(../BigRepo),但这并不难。

从这里最简单的方法可能就是用您拥有的内容重做子模块添加,方法是

# undo the in-repo add
mv BigRepo ../agggh_I_meant_to_add_this_from_outside
git rm --cached BigRepo
git config -f .gitmodules --remove-section submodule.BigRepo
git config                --remove-section submodule.BigRepo

您的撤销已完成。

现在,如果您从本地未发布的存储库添加子模块,则必须稍后更正网址以方便其他人,但这很简单:

# Get `git submodule add` to do the hoisting for you
git submodule add ../agggh_* BigRepo

# but from now on use u://r/l as the submodule's published repo:
git config -f .gitmodules --set submodule.BigRepo.url u://r/l
git config                --set submodule.BigRepo.url u://r/l  # alternate spelling of `git submodule sync BigRepo` here

# and the published repo is my copy's `origin` too
git --git-dir=BigRepo/.git remote set-url origin u://r/l

(

编辑解决评论中的问题:

The mv/clone-from-the-mv'd-one 对是因为也许你已经完成了,或者完成了但忘记了,那里的一些工作,等等../BigRepo可能已经过时了。这只是一种安全策略; Arm -rf BigRepo然后git submodule add ../BigRepo如果当前添加的确实是可丢弃的,那么也可以工作。

我无法弄清楚上面添加的任何子模块如何引发网络活动 -../anything与以下文件系统位于同一文件系统上../ThisRepo i.e. ., 正确的?git clone普通的相同文件系统路径(相对或绝对)的硬链接会非常便宜,除非您采取措施激发实际副本——这甚至在 NTFS 上也有效。仅当您指定完整的 url 或以其他方式强制解决 git 创建完整副本克隆的问题。也许只是咖啡因的作用异常缓慢,如果我漏掉了一些东西,无论谁看到它,都可以将其编辑进去或将整个段落编辑掉。

)

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

如何使用现有存储库添加/更新子模块以节省带宽? 的相关文章

  • 使用两个帐户推送到 Git

    我跟着这个tuotrial http code tutsplus com tutorials how to work with github and multiple accounts net 22574关于如何在同一台计算机上拥有两个单独
  • 是否应该在 git 中跟踪 .history 文件夹中的文件[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我进行更改时 history 文件夹中的某些文件在我的状态中都会显示为未跟踪 我将如何控制它 即 make 是自动添加或不添加这些内容 而不
  • 使用脚本检查 git 分支是否领先于另一个分支

    I have branch1 and branch2我想要某种 git branch1 isahead branch2 这将显示如果branch1已承诺branch2没有 也可能指定这些提交 我无法检查差异原因branch2 is在之前br
  • Git - 显示远程分支的远程名称

    是否有一个 Git 命令可以显示远程分支的远程名称 目前 我坚持使用 shell utils 从远程分支引用中提取远程名称 例如 echo remote name branch name sed r s 1 remote name 有时出于
  • 我可以从命令行向 github 添加问题吗?

    我是 git 新手 我希望能够通过 github 绘制我的项目的计划和进度 问题是 这需要在 github com 上使用浏览器进行大量点击 并且我希望能够通过使用命令行程序来自动执行该任务 github 有命令行界面吗 有一个ghi ge
  • 在 Windows 上将 Mercurial (hg) 存储库转换为 Git (7)

    我现在真的很沮丧 我有一个现有的 hg 存储库 其中有几个月的编码历史 我想将其放入私有 Github 存储库中 以便我可以从那里对其进行处理 不幸的是我使用的是 Windows 我似乎找不到any转换我实际上可以正常工作的存储库的方法 实
  • 尽管有 svn 复制,如何 git svn 克隆完整历史记录

    在我的公司 我们即将从 svn 切换到 git 我们使用的 SVN 非常大 没有 svn 布局 并且在每个版本拆分上我们都制作了一个 svn 副本 SVN存储库结构 svnserver company de product xy 主要版本号
  • 来自 eclipse 的部分 git 提交 (egit)

    假设我有一个有 2 个更改的文件 如何使用 egit 只提交其中之一 命令行版本可以在以下位置找到this https stackoverflow com questions 1085162 commit only part of a fi
  • Python 无法在 git bash 命令行中工作

    Python 不会在 git bash Windows 中运行 当我在命令行中输入 python 时 它会将我带到一个空行 而不会像在 Powershell 中一样显示它已输入 python 2 7 10 它没有给我错误消息 但 pytho
  • 使用 Subversion 进行部分提交

    鉴于我做的案例两个独立的变化 in one文件 例如 添加了一个新方法并更改了另一个方法 我经常不想提交这两项更改 因为one提交 但作为two独立承诺 在 git 存储库上我会使用互动模式 of git 添加 1 http linux d
  • 本地git,推送到tfs远程repo

    我厌倦了向我的队友解释使用 DVCS 相对于 CVCS 的好处 他们中的一些人害怕学习曲线 另一些人则看不出任何原因 因为对他们来说 这都是一样的 就我个人而言 我对 TFS 及其问题感到非常厌倦 每当我需要进行一些小的 修复 时 我都必须
  • 为什么在 Eclipse 中对 Egit 管理的项目禁用合并工具?

    根据Egit 用户指南 http wiki eclipse org EGit User Guide Using Merge Tool 要使用合并工具 应右键单击存在合并冲突的资源 然后选择Team gt 合并工具 但是 当我执行此操作时 合
  • 合并之间的 git rebase 会导致完全不相关的文件发生冲突

    我有一个大型 Git 存储库 几个月前引入了一个错误 我想bisect它 首先引入一个过去的提交 存储库 然后重播合并 做rebase到新的 commit 如下图所示 据我了解 由于合并 Git 似乎无法正常工作 预期的 但我想更好地了解为
  • 如何在本地快速拉取拉取请求

    在合并拉取请求之前 我想在本地快速拉取请求并运行测试并测试一些内容 我还不想点击 gihub 合并拉取请求 我以为滑轮会有帮助http ejohn org blog pulley http ejohn org blog pulley 但我收
  • 通过链接进入 git-repo,无需冗长的对话框

    In a directory I have symbolic links into a git administered directory all under Linux Every time I want to e dit such a
  • git checkout 到分支需要很长时间

    我使用的是 Ubuntu 17 10 并且使用 git 版本 2 14 1 每当我从 master 创建一个分支并尝试签出它 或从它签出到 master 时 都会花费大量时间 大约几分钟 有时接近 10 分钟 确实 我有几 GB 的数据 但
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 致命:不是 git 存储库(或任何父目录):.git [重复]

    这个问题在这里已经有答案了 当我尝试推送 github com 上的现有存储库时 当我输入命令时 网站提示我将其输入终端 我收到了以下致命错误消息 Not a git repository or any of the parent dire

随机推荐

  • Python-从另一个列表中删除一组列表

    array1 1 2 3 4 5 6 7 8 9 array2 1 2 2 2 5 6 6 6 9 temp set array2 array1 remove temp Traceback most recent call last Fil
  • JqG​​rid 搜索字段的多个文本框

    我想知道 JqGrid 高级搜索是否可以为我想要搜索的某些字段显示多个文本框 例如 如果我有一个 电话号码 字段 我希望能够可视化 2 个框 一个用于区号 另一个用于电话号码的其余部分 然后按 查找 后 我希望能够获取两个值并将它们合并或执
  • 将事件分配给事件处理程序的两种不同类型之间的区别

    我在 SO 中看到了这个示例代码 它说一种做法不好 另一种做法很好 但我不明白为什么 事实上 我收到了著名的 RCW COM 对象错误 该帖子说这可能是一个原因 public class SomeClass private Interop
  • 如何在单击项目时检查ListView的复选框?

    如何在单击项目时检查ListView的复选框 我有一个带有复选框 文本视图 按钮的列表视图 这里我想选择ListView的多行 所以使用了CheckBox 如果我点击一行 我想让它对应的CheckBox被选中并获取ListView中被点击项
  • 每个Android的location.Address方法返回什么?

    我试图弄清楚如何使用 Android SDK 和 android location Address 类获取地址组件 有些方法非常简单 其他方法很容易通过示例中的示例来理解文档 http developer android com refer
  • .Net Core - CS0012“对象”在未引用的程序集中定义

    我是 Net Core 的新手 我正在尝试基于它构建一个构建系统 作为该项目的一部分 我创建了一个抽象类 它详细说明了构建任务应实现的内容 并将其填充到共享库中 可执行项目引用该库并扫描项目目录以查找特殊命名的目录 然后检查是否有任何 cs
  • Play Framework Form“折叠”方法命名原理

    Play 框架 2 x 表格类 http www playframework com documentation 2 0 api scala index html play api data Form有一个方法叫做foldwho 的用法表示
  • 所需的后台模式 iOS6 Xcode 4.5

    我注意到在 Xcode 4 5 和 iOS6 中 必需的背景模式 应用程序播放音频 不起作用 有其他人注意到这一点吗 如果是的话 您找到解决办法了吗 Thanks 我相信它可能取决于您为 AVAudioSession 指定的类别类型 确保将
  • 测试递归方法

    我想测试一个方法 public function get key if time this gt driver gt get key if key self LAST UPDATE KEY time new DateTime this gt
  • 保持侧边导航与页面滚动固定

    我有一个客户网站 www stagecraft co uk 他们想要在租用页面 http www stagecraft co uk hire html 较长的页面 http www stagecraft co uk lighting gen
  • Tensorflow 未显示“在本地成功打开某某 CUDA 库”

    我将 TensorFlow 配置为在 GPU GeForce 840M 上支持 CUDA 但程序运行速度相当慢slow与我之前使用的 CPU 相比 还有 我do not收到任何类型的消息某某CUDA库打开成功当我运行程序时 相反 这是我运行
  • 在精确的关键帧处停止故事板

    我为我正在制作的一些游戏制作了一个骰子 在 C 中 它是一个用户控件 它使用故事板来依次显示多个图像 如幻灯片 因此它看起来像一个滚动的 3D 骰子 问题在于在特定关键帧处启动和停止它 为此使用 Pause 和 Resume 似乎是合乎逻辑
  • Python gekko 方程定义中的换行符

    我目前正在手动实现有限元的伽辽金法 并使用 python gekko 来求解所得的非线性代数方程组 这对于小型系统来说不会产生任何问题并且工作正常 一旦系统变得更加复杂 涉及长方程和指数项m exp 对于求解器来说 方程可能不再具有正确的格
  • 如何在 GITLab WebHook 中将提交 SHA 作为参数传递

    如果有代码提交到 Gitlab 我想触发 Jenkins 作业 I am using WebHooks for this 我正在尝试的网址是 http 10 192 39 32 1024 job SCMSnaps buildWithPara
  • String 类造成混乱

    最近我在java中遇到了一个错误 Exception in thread main java lang NoSuchMethodError main 即使我的课程只有 3 行代码 public class Test public stati
  • 将多列合并为 1 列 [python,pandas]

    我有一个包含 2 列的 pandas 数据框 A 1 2 3 B 4 5 6 我想创建一个新专栏 其中 C 1 4 2 5 3 6 Setup df pd DataFrame A 1 2 3 B 4 5 6 Solution 请记住 根据您
  • 使用变量查询

    是否可以在查询中设置 读取变量 伪代码 SELECT animal name tallest animal select top 1 height from animal order by height desc as tallest sm
  • ASP.NET Core 1.1 在本地运行良好,但在发布到 Azure 时显示“启动应用程序时发生错误”。

    我一直在开发一个 ASP NET Core Web 应用程序 主要基于 Visual Studio 2017 RC2 中提供的 MVC 模板 它在本地调试模式下运行得很好 但是当我尝试将其发布到 Azure 托管的 Web 应用程序时 出现
  • 如何获取超过 25 条帖子

    我正在尝试使用restfb获取所有帖子消息 我的代码如下 public Connection
  • 如何使用现有存储库添加/更新子模块以节省带宽?

    假设我有一些大型存储库 BigRepo 并且我想将其添加为另一个项目的子模块 通常我会这样做 git submodule add email protected cdn cgi l email protection me BigRepo g