如何在git中维护一组分支的浅克隆

2023-12-13

我想维护几个分支的浅、镜像、裸克隆。我将从本地克隆不同的项目分支。例如

+------------------------------------------------------------------+
| repo1: server1:original-repo.git branches: A, B, C, D, E         |
+------------------------------------------------------------------+
  ↓
+------------------------------------------------------------------+
| repo2: server2:shallow-bare-selective-clone branches: A, B only  |
+------------------------------------------------------------------+
  ↓                                 ↓
+-------------------------------+ +--------------------------------+
| repo3: server2:clone repo2, A | | repo4: server2:clone repo2, B  |
+-------------------------------+ +--------------------------------+

所以我可以像这样制作repo2

git clone --bare --mirror --depth 1 server1:repo1  repo2
cd repo2
git fetch --depth 200 origin A
git fetch --depth 200 origin B

然后我认为 repo3 和 4 真的很容易 - 他们可以从 repo2 克隆他们想要的一切,他们会受到 repo2 浅度的限制。

但是,让 repo2 与 repo1 保持同步,同时保持其浅薄性是我所坚持的(理想情况下,我想维护自某个提交以来的所有内容,但我知道这是不可能的)。看来我每次都必须执行多个 git fetch 命令,对吗?有没有办法将其弹出到配置文件中,以便我可以这样做git fetch它知道我的意思吗?


我在搜索类似的复杂 Git 需求时遇到了这个问题,并且完全理解这个问题已经有 2 年历史了。我回答是因为根本没有答案,而问题仍然非常有效。

浅薄主要是fetch财产。所以可以这样做fetch with --depth 200并在没有太旧的提交的情况下维护历史记录。

现代版本的 Git 有--shallow-exclude选项。我认为这正是允许“维护​​自某个提交以来的所有内容”的原因。

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

如何在git中维护一组分支的浅克隆 的相关文章

  • Gerrit 安装后无法克隆所有项目存储库

    我有一个新设置的 Gerrit 实例 目前只有两个存储库 所有项目 binutils 测试 尝试克隆所有项目时 我收到以下错误 git clone ssh user hostname 29418 All Projects Initializ
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • 重新打包存储库对于大型二进制文件有用吗?

    我正在尝试将大量历史记录从 Perforce 转换为 Git 并且一个文件夹 现在是 git 分支 包含大量大型二进制文件 我的问题是运行时内存不足git gc aggressive 我的主要问题是重新打包存储库是否可能对大型二进制文件产生
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif
  • IntelliJ:查看本地和 git 提交/分支之间所有已更改文件的差异

    使用 IntelliJ 的 diff 查看器是检查代码的一种非常好的方法 因为您可以使用 IntelliJ 代码编辑器的所有功能 重构 完成等 在本地版本中进行更改 不幸的是 我还没有弄清楚当你在 IntelliJ 中进行代码审查时如何做最
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • 为什么我无法创建/签出该分支?

    我正在尝试创建本地 Git 分支 但它不起作用 以下是我正在使用的命令 tablet edit11 git checkout b edit 11 Switched to a new branch edit 11 tablet edit11
  • 自动将所有 GitHub 存储库镜像到 gitlab

    对于 GitLab 必须手动为每个存储库设置拉 推镜像 我想知道那里有any way可以自动将所有 Github 存储库同步到 GitLab 这样 当您在 GitHub 中创建新的存储库时 GitLab 中的存储库将自动创建 并充当拉取镜像
  • 哪个是更智能的 git 协议,ssh 或 git(通过 ssh)或 https 协议?

    哪个高效 SSH 或 Git 文件压缩 我对 Git 的理解是 git 协议很智能 因为通信两端都有一个协议代理来压缩文件传输 从而通过有效地使用网络带宽来实现更快的克隆 From 我发现了以下说法 For secure authentic
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • 第一次使用node.js - “ReferenceError:节点未定义”

    我刚刚安装了node js 我尝试编写应该检查版本的node v 但它不起作用 这是输出 gt node v ReferenceError node is not defined at repl 1 2 at REPLServer self
  • VS 2015 + Bower:在防火墙后面不起作用

    Problem 在 Visual Studio 2015 中 使用 Bower 我的包在防火墙后面时恢复失败 并出现类似以下内容的错误 ECMDERR 无法执行 git ls remote tags heads git github com
  • 在 Azure DevOps 项目之间移动存储库时保留拉取请求

    我在同一帐户内有两个 Azure DevOps 项目 我想将存储库从一个项目移动到另一个项目 这一页探索如何在具有完全保真历史记录的团队项目之间移动 git 存储库 https learn microsoft com en us azure
  • Netbeans 和 Git,.obj 文件被忽略

    我正在开发一个涉及 obj 文件的小型 git 项目 当我查看 项目选项卡 时 我发现它们被忽略了 但如果我查看我的 gitignore 我无法理解为什么 DepthPeeling nbproject private DepthPeelin
  • 如何在 macOS 上将 Git 升级到最新版本?

    我刚刚购买了一台装有 OS X Lion 的新 Mac 我在终端中检查了默认安装的 git 版本 我得到了答案 git version gt git version 1 7 5 4 我想将 git 升级到最新版本 1 7 8 3 因此我下载

随机推荐

  • Selenium moveByOffset 不执行任何操作

    我在 Linux Xubuntu 13 10 上使用 Firefox 28 0 运行最新的 selenium 2 41 我试图让 FirefoxDriver 将鼠标移到页面上 在我的测试中 我使用了有线网页 它有很多悬停激活的菜单 但是mo
  • Java中的逻辑运算符优先级

    我对此并不满意 http docs oracle com javase specs jls se7 html jls 15 html jls 15 22 它明确规定了以下内容 如果操作数表达式没有副作用 则每个运算符都是可交换的 and 这
  • VB.net Excel.worksheet().cells().Value

    尝试在 Excel 工作表中写入信息 但有一些奇怪的问题 我在谷歌上查看了信息 但没有结果 所以请帮忙 我添加引用Microsoft excel 14 0对象库 并导入 Microsoft Office interop 我需要从特定单元格获
  • 我可以使用哪些方法通过 Spotify 应用程序进行地理定位?

    Spotify Apps API 不允许 HTML5 地理定位 显然记录的 Location api 调用不起作用 正在从文档中删除 我可以使用哪些方法来对用户进行地理定位 查找网站访问者地理位置的解决方案及其建议http freegeoi
  • 变换后的宽度/高度

    应用后如何检索宽度和高度属性transform rotate 45deg 比如 旋转后 11x11 的正方形变成 17x17 Chrome 结果 但 javascript 仍然返回原始宽度 高度 10x10 我如何获得这个 17x17 您可
  • Powershell Golf:下一个工作日

    如何使用 powershell 查找下一个工作日 好吧 我的手机允许我设置哪些日子是工作日 但 Windows NET 不允许 所以我假设是周一到周五 注意 由于问题包括 高尔夫 我正在打高尔夫球 即尝试为脚本使用尽可能少的字节 结果代码不
  • lapply 适用于数组还是单个元素?

    我对 lapply 是否适用于列表或向量有点困惑 请参阅下面的两个示例 这里 均值函数应用于数字数组 即 1 到 5 x list a 1 5 b rnorm 10 x a 1 1 2 3 4 5 b 1 0 57544290 0 5103
  • C 从管道块读取直到子进程终止

    父进程创建 N 个子进程 每个子进程都用 exec 替换自己 父进程和 exec 之间通过一系列管道进行通信 int pipelinefd N 2 The exec使用以下命令写入管道 char msg 50 sprintf msg tse
  • 让 Google Play Services 4.0.30 与 Android Studio 0.4.2 和 Gradle 0.7 配合使用

    使用 Android Studio 让 Google Play Services 运行的解决方案似乎并不缺乏 我已经尝试过其中的大多数 经过多次试验和多次错误后 我得出的结论是 为了使这些解决方案中的许多解决方案发挥作用 您必须像这些解决方
  • Python igraph:获取有向图中所有可能的路径

    我正在使用 igraph Python 希望获取有向图中两个节点之间的所有可能路径 我知道这个功能get all shortest paths 这是最短路径 但找不到通用路径 Update 我的主要目标是获取这些路径中的所有节点 以便我可以
  • Java 集的“包含任何”之类的东西?

    我有两套相同类型的 A 和 B 我必须查找 A 是否包含集合 B 中的任何元素 在不迭代集合的情况下做到这一点的最佳方法是什么 Set 库有contains object and containsAll collection 但不是cont
  • 将sequelize cli 与typescript 结合使用

    我正在尝试将sequelize 与typescript 一起使用 但不知道如何操作 我安装了一个名为sequelize cli typescript 的软件包 但它不适用于sequelize v6 我知道最好使用迁移来执行我的数据库 我怎样
  • 如何使用 JAXB 自定义 XML 导出

    出于测试目的 我使用 JAXB 从对象生成 XML 这工作正常 代码如下 package com mns mnsutilities jaxb model import java util List import javax xml bind
  • GIT - 合并后分支未关闭

    我们对使用 GIT 还很缺乏经验 实际上我们喜欢分支的想法 但不知何故 来自一个用户的所有合并都不会关闭分支 您可以在此处查看图片 http i54 tinypic com 297i14 png 有一条灰色和蓝色的线直接向前 即使在合并之后
  • 如何让用户在 MSChart 上创建注释?

    如何在运行中创建注释以及如何启用最终用户放置Annotation BeginPlacement 我尝试以多种方式做到这一点 但无法使其发挥作用 在调用 BeginPlacement 后 它应该实时呈现自身 关于这个主题的文档几乎没有 而且大
  • 将 Angular 2(快速入门应用)部署到 Google Cloud 平台

    我试图在 Google Cloud 平台上部署最简单的项目 可以找到快速启动项目here 在本地它可以正常工作 然而 让它在 Google Cloud 上运行变得更加复杂 我知道有很多其他提供商 例如 Heroku 可以一键部署 但我发现奇
  • 如何在 HIVE 中将日期 2017-sep-12 转换为 2017-09-12

    我在转换配置单元中的日期时遇到一个问题 我需要将 2017 sep 12 转换为 2017 09 12 我怎样才能在 HIVE 中实现这一目标 Use unix timestamp string date string pattern 将给
  • vb6 将静态整数初始化为什么?

    Static i as integer 什么会i在我赋值之前 它似乎只是零 0 但我想确认这一点 当程序启动时 所有 VB 数据类型的变量都会收到各自的默认值 这包括将所有数字初始化为零 并将所有其他数据类型初始化为零 vbNullStri
  • 使用 c 求数组的平均值 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我是 C 编码新手 我试图获取数组的平均值 但由于某种原因它没有计算 它给我的结果是 0 0 我怎样才能解决这个问题 谢谢 include
  • 如何在git中维护一组分支的浅克隆

    我想维护几个分支的浅 镜像 裸克隆 我将从本地克隆不同的项目分支 例如 repo1 server1 original repo git branches A B C D E repo2 server2 shallow bare select