将一个存储库的更改合并到具有不同树结构的另一个存储库

2024-06-22

我有两个 Git 存储库,foo/master 和 bar/master:

In foo:

code_root
->dirA
  ->dirB
    -> *some files*

In bar:

code_root
  -> *same files as above*

现在有人做出了改变*some files*...我如何将这些更改合并到*same files as above*?

当我说“合并”时,我的意思是我还需要增量的历史记录(提交消息、日志哈希等)。


您可以将更改拆分到子树级别,然后与其他分支合并:

# from your foo project
git subtree split --prefix=dirA/dirB/ --branch=temp-branch [--onto=<onto-sub-note1>] [<commit-sub-note2>]

到小注释 1: 好像是从那时起bar项目根本存在,您必须在某个时间点复制它,并将其作为新库启动,在这种情况下,如果您希望此后进行所有更改,您可以指定此bar引入更改时的提交 ID。

提交子注释 2:然后,您需要指定首先复制子项目时使用的提交 ID,以便您只能获取此后的更改以合并到bar您已经拥有了(这将保留您错过的历史记录)。使用这样的语法来包含最新的提交 ID 本身:0abc210^..

您还可以使用--rejoin重新提交到你的foo项目,如果您想继续开发,这将使以后更容易推送更改bar从你的内心foo项目。提交回foo除了帮助子树命令库将来更容易更改分割之外,这有点毫无意义。

运行 split 命令后,您将进入一个分支foo,其中只有这些文件。从那里你可以与你的进行正常合并bar项目或开始一个新项目并合并bar对此(因为它可能没有正确的历史)。不过,在尝试进行合并之前,您可能需要重新定位到分歧点或其他位置。

编辑:这也是git 子树命令参考 https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt

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

将一个存储库的更改合并到具有不同树结构的另一个存储库 的相关文章

  • 如何找出在哪个提交中添加了特定代码?

    我想知道我在哪个提交中添加了下面给出的代码 if getListView getChildCount 0 getActivity findViewById android R id empty setVisibility View VISI
  • 如何在 gitolite 中安装钩子

    我已阅读全部关于钩子的文档 https github com sitaramc gitolite blob pu doc 2 admin mkd using hooks similar https stackoverflow com que
  • Emacs shell:保存提交消息

    我几天前开始使用 emacs 在 emacs shell M x shell 中使用 git 时遇到问题 当我 git commit 或 git commit amend 时 它会打开 vim 来编辑并保存提交消息 我对此表示同意 但我找不
  • Git 粒度——解决一行内的差异

    git 基于行的粒度或 diff 粒度是否可以增加到单词 字母分辨率 每行多条语句或使用 git 编写纯文本是值得的 根据评论重新阅读问题时 我想我明白了您最初的意思 所以我将给出一个真正的答案 与伊斯梅尔 巴达维的一行评论 https s
  • Git 和外部备份。子目录是空的,我宁愿它不是空的。

    我想使用 Git 创建外部备份系统 这部分是受到答案的启发在外部磁盘上备份整个 git 存储库的最佳方法是什么 https stackoverflow com a 4372855 2533127 其中建议如下 您还可以通过启动一个新的存储库
  • 有没有办法显示 Visual Studio 执行的 Git 命令? [复制]

    这个问题在这里已经有答案了 在 Visual Studio Code 中 有一个 显示 Git 输出 菜单项 显示最近运行的 Git 命令 有关其外观的示例 请参阅3 35 在这个视频中 https code visualstudio co
  • 使用 git 合并两个文件夹

    我正在和一些以前从未使用过 git 的人一起开发一个项目 由于不了解 git 的功能 他们创建了该项目的两个版本 开发版本和生产版本 这两个版本都存在于当前环境中 更复杂的是 除了旧的开发文件夹之外 另一个用户还创建了这些文件夹 所以项目目
  • 如何防止自动工具自动重新生成配置脚本?

    有时由于SCM没有严格记住文件的时间戳 生成的Makefile会认为需要重新运行 autoreconf i 或相当于从Makefile am重新生成Makefile in 从configure ac重新生成配置等 我该如何防止这种情况 我想
  • 如何在cygwin下更改git中文件的大小写?

    我们在区分大小写 不敏感的混合环境 cywgin linux 中工作 今天有人通过重命名文件 将 S 更改为 s 对我们的工作流程造成了小破坏 这导致了各种有趣的跨分支合并问题 而且说实话 没有人完全确定发生了什么 在 cygwin 的 g
  • git merge 和 git merge origin 之间的区别

    这不是一个关于git merge origin branch vs git merge origin branch git merge
  • 在 ConEMU 中显示 git 分支

    有没有办法在 ConEmu 中以视觉方式 背景或类似 在 git 中显示分支 Git 分支可以在普通的 cmd 或 Far Manager 提示符中可见 所有魔法都是通过特殊的 ANSI 序列完成的 必须选中 Inject ConEmuHk
  • 推送后删除敏感数据

    因此 我正在开发一个项目并添加一个 gitignore 文件以防止包含一些敏感数据 但它无法按预期工作 现在我已经推送了它 有没有办法从远程存储库中删除它 这样历史记录中就没有它的证据了 您可以在本地恢复更改 git commit amen
  • 通过标记现有提交来触发 Jenkins 管道

    描述 我设置了 Jenkins 2 126 以便在推送新标签时构建管道 具体来说 我想将现有提交标记为master as release 3并让它触发构建 根据多个消息来源 我想要的是可能的 https mohamicorp atlassi
  • git 压缩并保留上次提交的时间戳

    考虑我有提交 A B C 如果我使用git rebase i将所有三个提交压缩为一个 我们可以 pick A squash B squash C 我看到结果提交A有其原始时间戳 如何让它继承提交的时间戳C 最后一个 我能想到的是git co
  • 在接受提交之前在 git 中强制执行代码标准

    好吧 场景如下 开发团队希望确保所有新代码都符合定义的编码标准 并且在接受提交之前所有单元测试都已通过 诀窍是 所有测试都需要在专用测试机器上运行 并且我们无权修改 git 服务器 因此必须在每台开发机器上使用本地提交挂钩来完成 虽然规范非
  • git 策略将一组提交限制在特定分支

    我需要经常在 dev 和 master 之间进行合并 我还有一个提交 我只需要应用于开发人员 以便在本地工作 早些时候 我只从 dev 合并到 master 所以我有一个分支 production changes 其中包含 dev 特殊提交
  • 如何在不修改 git 历史记录的情况下在我的源代码上运行代码格式化程序?

    我正在尝试使用代码格式化工具格式化整个存储库 这样做时 我想保留有关谁提交了哪一行的信息 以便像这样的命令git blame仍然显示正确的信息 我的意思是它应该显示作者之前编辑过每一行 在格式化之前 git filter branch 命令
  • SSL_connect:SSL_ERROR_SYSCALL 连接到 github.com:443

    几天后 我遇到了 Mac OS High Sierra 10 13 3 的问题 当我运行git clone like git clone github com xxx git failed它打印 LibreSSL SSL connect S
  • 如何撤消 git pull?

    由于远程源上不需要的提交 我想撤消 git pull 但我不知道必须重置回哪个版本 我怎样才能回到在远程源上执行 git pull 之前的状态 或者使其比其他答案更明确 git pull whoops git reset keep HEAD
  • Git:如何忽略/指定 *checkout* 文件

    如果我不想跟踪 html 文件 我可以将模式添加到 gitignore 它们将被忽略 我想知道如何做相反的事情 在结账时 我如何要求 git 仅签出某些类型的文件或不签出某些类型的文件 例如 如果我不需要 html 文件 我可以写 git

随机推荐

  • 构建 Ad Hoc iOS 应用程序时 OSStatus 错误 -67028

    当我尝试在 iOS 上为仅限 iPhone 的应用程序进行临时分发的存档构建时 出现错误 该应用程序使用正确的证书进行签名 并具有正确的配置文件 与也能够正确签名的朋友进行了检查 因此这不是代码签名问题 每当我尝试使用 Xcode 存档面板
  • 在 Recyclerview 上播放视频时遇到问题

    我在 RecyclerView 中有一个 VideoView 我希望最终有一个可以在 Recyclerview 上播放的视频列表 我决定从一个视频开始 然后再制作多个视频 我似乎无法在 Recyclerview 中播放任何视频 当我在手机上
  • magrittr 管道内的 enquo()

    我只是想了解这里出了什么问题 在第一种情况 工作 中 我分配enquo ted 变量的参数 在第二种情况下 我直接在调用中使用带引号的参数mutate library dplyr df lt tibble x 1 5 y 1 5 z 1 5
  • Java中的选择排序算法

    我在对数组进行排序时遇到一些问题 我正在尝试按升序对其进行排序 我的任务是从用户那里获取一系列整数并将它们存储到一个数组中 然后按升序将它们显示给用户 我很高兴从用户那里获取输入 将其存储在数组中并将其显示回来 我能够运行我的代码并获得我想
  • 从最终用户处获取 Internet Explorer 安全设置

    据报告 我们的网络应用程序存在问题 这些问题似乎只发生在一个客户的站点上 出于诊断目的 有什么方法可以让客户向您发送他们的 IE 安全自定义设置吗 例如在 IE 8 中 工具 gt Internet 选项 gt 安全选项卡 对于 Inter
  • 如何使用 C# 将数据从存储在 FTP 服务器上的 ZIP 文件导入到数据库

    此代码从 FTP 服务器导入 void dat 文件 现在 void dat 位于 archive zip 文件下 那么如何从数据库中的 archive zip 中提取并导入数据 void dat 呢 WebClient request n
  • 如何在 Rust 中使用条件编译宏的示例

    我已经关注了相当多 https doc rust lang org reference attributes html conditional compilation of 文档 https doc rust lang org stable
  • 对整个块使用异步管道和可观察的

    我有一个 Observable 它从 API 返回一个大对象 我需要在我的模板中显示这些值 对于以数组形式返回的其他数据 我可以使用 div p value prop p div 我不需要等待异步完成 ngFor 因为它的父元素中已经有一个
  • 将具有不同 id 的元素拖放到相应的放置区

    我有 12 个具有不同 id 的参数 我想将它们拖放到相应的云中 四朵云中的每一朵都至少有三个相应的参数 如果错误的参数被放入错误的云中 那么应该显示一条错误消息 并将错误的参数发送回初始占位符 到目前为止 我已经成功地对拖放进行了编码 但
  • Doctrine2 DBAL 存在查询

    我想请求你的帮助Doctrine2 DBAL查询构建于QueryBuilder 我习惯了 ORM 但我认为对于在侦听器中调用的此类查询来说 这是一种矫枉过正的做法 我需要查询SELECT EXISTS我不知道如何使用 DBAL 构建它Que
  • MP Android Chart-如何修复折线图中X轴值的数量?

    private void plotchart String s float f1 chart setBackgroundColor Color rgb 63 81 181 chart setDescription enable touch
  • 使用 Knockout 验证器添加 CSS 类

    我想将 CSS 类添加到select在我的视图元素中 我的视图模型有一个属性 我使用 Knockout Validation 扩展了该属性 self selectedRootCause ko observable extend requir
  • ASP.NET Web Api:项目需要 SQL Server Express

    我在VS 2010下创建了一个Web API项目 当我切换到 VS 2012 后 我总是收到警告 Web 项目 xxx 需要 SQL Server Express 但不需要 安装在这台计算机上 我不想安装此 SQL Server Expre
  • 如何修复 fxml 中的“无法派生 .jar 文件的模块描述符”错误

    我想从 JAR 库获取图像到我的项目中
  • HTML5:标题之前的元字符集?

    我经常看到这样的情况 将图表集定义放在标题标签之前重要吗 Thanks 是的 是的 请参阅https code google com p doctype mirror wiki MetaCharsetAttribute https code
  • ' Xamarin 表单' aria-label=''IAsyncOperation<>' Xamarin 表单'> 'IAsyncOperation<>' Xamarin 表单

    在 UWP 应用程序和 Xamarin Forms 应用程序中使用完全相同的代码时 我在 Xamarin Forms 程序上收到以下错误 但在 UWP 程序上则没有 错误 CS0012 在未引用的程序集中定义了类型 IAsyncOperat
  • Gradle - 排除文件与 jar 一起打包

    我想要exclude AMAuthN properties从构建的罐子中 该文件一直显示在编译后的 jar 的根文件夹中 该文件位于AMAuthN src main resources AMAuthN properties相对于项目文件夹根
  • ruby on Rails 命名范围实现

    摘自 使用 Rails 进行敏捷 Web 开发 一书 class Order lt ActiveRecord Base named scope last n days lambda days conditions gt updated lt
  • 我可以分配多少内存?

    如果我的机器上有16 GB的RAM 我可以将多少分配给我正在执行的Java命令行计划 我假设java Xmx 16g 会让我的系统崩溃吗 EDIT 根据评论 我尝试了java Xmx16g 并且它没有使我的机器崩溃 程序仍然内存不足 我试过
  • 将一个存储库的更改合并到具有不同树结构的另一个存储库

    我有两个 Git 存储库 foo master 和 bar master In foo code root gt dirA gt dirB gt some files In bar code root gt same files as ab