将更改从通用差异导入 git 存储库

2024-05-26

我正在尝试将更改从一个源代码控制系统(专有且复杂)导入到 git 存储库中。我目前正在通过运行一个脚本来执行此操作,该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库,但由于各种原因,这已变得不可行。

对于每个修订版,我都可以获得描述更改的通用差异。对我来说,这似乎足以将历史记录导入 git,但我一生都无法弄清楚如何让 git 做到这一点。看起来我需要介于 git-apply 和 git-fast-import 之间的东西。也许我应该从以前的版本和差异构建文件内容,然后使用 git-fast-import ?或者也许我应该将 diff 格式化为 git 补丁,将其另存为文件,然后使用 git-apply?

有人对我有什么好主意吗?

编辑:同步和提交变得不可行的原因有两个:

首先,服务器维护您已编辑的文件列表。与已编辑的文件同步无法轻松自动化,因此我在更新时恢复更改。我们有一个签入队列系统,仅当您前面没有人拥有与您“编辑”相同的文件时,才允许您签入。因此,将文件“停止编辑”进行更新会创建一个窗口,看起来人们可以安全地跳到您前面。

其次,所有分支都存储在同一个存储库中,并且我们大量使用分支。同步所有内容都很简单并且有效,仅同步一个目录(我所在的分支的目录)似乎有问题。如果我同步所有内容,当我不希望其他分支更新时,它们就会更新。这通常不会成为问题,但我们有另一个工具,这使事情变得......复杂。


  • The apply接受统一差异并应用它的命令(即没有“git patch 格式”,它只是统一差异;也git apply -会很乐意读取标准输入,因此无需保存任何内容)。
  • The am命令采用包含补丁的 mbox 格式文件,并应用并提交每个补丁。您也许能够轻松生成此内容;很简单:

    From [email protected] /cdn-cgi/l/email-protection Mon, 23 May 2011 14:49:12 +0200
    From: [email protected] /cdn-cgi/l/email-protection
    Date: Mon, 23 May 2011 14:49:12 +0200
    Subject: First line of commit message
    Content-length: <bytes-until-next From>
    
    Other lines of commit message
    ---
    unified diff
    

    连接所有修订。

  • 确实看起来fast-import不接受差异,但是你不能只要求源系统为你提供修订的内容(这将处理无法构建统一差异的二进制文件)吗?如果没有,你可以询问fast-import给你以前的内容(与cat-blob命令),修补它并再次输入它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将更改从通用差异导入 git 存储库 的相关文章

  • 如何避免开发人员将凭证推送到 bitbucket?

    我们有一个应用程序 它使用 JSON 文件来定义数据库和其他 API 的连接字符串和凭据 理想情况下 这些凭证作为变量添加到 bitbucket 存储库中 并在 Jenkins 的构建期间进行替换 开发商在当地与他们合作时更换了他们 我们需
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 如何让 git 和 copSSH 在正确的目录中查找密钥?

    我刚刚安装了 Windows 版 copSSH 当我启动它时 我得到一个目录C copSSH home Nick ssh其中有我的酒吧和私钥 当我通过 Cygwin bash 窗口访问此目录时 使用 ssh 用户 主机 我很高兴地登录了 但
  • 如何使用 git hook pre-merge-commit 获取原始合并分支名称

    我正在尝试使用新的 git hook pre merge commit 创建一个特定的脚本 但它没有参数 有什么解决方法可以让我获得正在合并的分支的名称吗 例子 在分支 myBranch 上 我调用 git merge testingBra
  • 由于不存在大文件而导致 git Push 错误

    当尝试推送到 git 时 我不断得到相同的结果 Counting objects 78 done Delta compression using up to 4 threads Compressing objects 100 67 67 d
  • git 命令显示所有(轻量级)标签创建日期

    是否有一个衬垫可以向我显示所有 git 轻量级标签的创建日期 就像是 git show tags format date 我在这个发现link http osdir com ml git 2009 05 msg01404 html适合我需求
  • 为什么在 Eclipse 中对 Egit 管理的项目禁用合并工具?

    根据Egit 用户指南 http wiki eclipse org EGit User Guide Using Merge Tool 要使用合并工具 应右键单击存在合并冲突的资源 然后选择Team gt 合并工具 但是 当我执行此操作时 合
  • 在 GitHub 上执行拉取请求时避免不需要的合并提交和其他提交

    我在 Github 上分叉了一个项目 令远程上游为upstream我的远程存储库是origin 我当地的master分支设置为跟踪远程master分支 然后我在本地添加了一些东西master 时不时与上游汇合 直到今天我想发出pull re
  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • 如何使用 vim 作为“git show”编辑器?

    全部如所述如何使用 vim 作为 git log 编辑器 https stackoverflow com questions 16666009 how do i use vim as git log editor不适用于 git show
  • 从 github 中删除子项目提交

    我有两个存储库A and B 我错误地在我的机器上将仓库 B 克隆到了 A 内 我从存储库 B 中删除了所有代码 但是当我在源上从 A 推送并合并代码时 它还显示了子项目提交B在 Github 仓库上 我想从我的 master 上删除子项目
  • gitlab 请求将分支 A 合并到开发中(落后 3 次提交)我应该担心吗?

    在 gitlab 中创建合并请求时 我经常收到一条消息 请求将分支 A 合并到开发中 x 提交落后 gitlab想告诉我什么 我应该担心还是需要修复某些东西 什么 一段时间后合并请求在项目中打开时 由于其他人合并了自己的更改 您尝试合并到的
  • 致命:无法将 HEAD 解析为有效引用

    我正进入 状态fatal Failed to resolve HEAD as a valid ref 每当我尝试承诺时 我努力了 echo ref refs heads master gt git HEAD 但它不起作用 也尝试过 git
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • Git post-receive - 如何检查推送的分支是否与主分支合并

    在我们的团队中 我们通常将所有任务推送到单独的分支中 然后发布经理审查这些分支并将它们合并到 主 分支中 有时团队成员忘记将他们的分支与主分支合并 在推送之前 所以我想做的是 在用户推送后输出一条消息 请与主分支合并 我想我需要检查一些内容
  • 无法使用 git 推送或获取 [重复]

    这个问题在这里已经有答案了 我可以拉 但无法使用 git 版本 1 9 5 推送或获取 它突然开始给我以下错误 关于如何修复它有什么想法吗 git fetch fatal unable to access https email prote
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • Perforce - 如何获取已本地修改的文件列表?

    我正在寻找一个 perforce 命令来获取已在本地修改且 未 签入存储库的文件列表 我知道我 应该 获取待处理更改列表中的已修改文件列表 但在某些情况下我看不到该列表中的已修改文件 然后 在 手动 检查文件并进行比较时 我意识到了差异 是
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我

随机推荐

  • 过滤绑定到 ItemsControl 的 ICollectionView

    我想制作一个 WPF 应用程序来浏览菜肴食谱 过滤数据时遇到问题 我正在使用 ItemsControl 使我的数据在窗口中看起来像 图块 现在我想用 TextBox 过滤它 但我不知道出了什么问题 这是我的 XAML 绑定
  • docker-compose 容器在多个项目中使用错误的容器

    我有两个项目 需要两个不同的docker环境 容器 我有两个docker compose yml两个不同项目中的文件 foo项目和bar项目 foo src website docker compose yml 1 foo version
  • 当我的 Login.aspx 不在应用程序的根目录中时,如何使用 ASP.NET 登录控件?

    我正在使用ASP NET 登录控件 http msdn microsoft com en us library ms178329 aspx and 表单验证 http msdn microsoft com en us library aa4
  • 如何预设属性中未定义的 MSI SecureCustomProperties 以允许静默安装?

    特定供应商的 MSI 通常通过 EXE 包装器安装 但我尝试通过 GPO 使用静默安装进行部署 我正在努力预设 SecureCustomProperties 供应商记录了可以传递给 EXE 包装器的大写命令行选项 我假设它会将它们传递给 M
  • 如何将 php 变量传递给 ajax

    我有一个自动加载页面 我需要能够基于变量检索数据 因为该变量必须返回特定值 下面的代码基于检索所有数据 但我只需要基于 list 的少数数据 Page php
  • 无法使用 Git Bash 对 Visual Studio Team Services 进行身份验证

    由于身份验证失败 我无法对 Visual Studio Team Services VSTS 上的远程存储库运行任何命令 我可以通过 Visual Studio 进行拉取等操作 但只能通过 Visual Studio 不通过 Git Bas
  • 模板内定义的友元函数的实例化

    这是后续的这个问题 https stackoverflow com q 67305642 4117728 最初的案例是另外一回事 但在我写出一个糟糕的答案和OP澄清的过程中 事实证明我们可能需要语言律师的帮助来理解发生了什么 在 Think
  • 不使用 Magento Connect 安装 magento 插件

    我有一个我的客户购买的插件 它是一个 zip 文件 如何在不使用 Magento 连接的情况下安装插件 通常你可以直接解压 但你应该检查目录结构是Magento风格 它至少应该有app code app etc modules目录
  • React Native 输入组件仅接受数值

    在React Native项目中 我有一个来自Native Base的输入组件 我希望这个组件只接受数值0 9并给这个字段默认值 我寻找了关于这个问题的其他问题 我不知道也许那些答案是针对 textInput 组件的 或者不知何故建议对我不
  • Mercurial日志接口

    我一直在浏览 hginit com 上的教程 但我发现了一个相当不方便的方面hg log特征 基本上 当我输入它时 我会在顶部看到最新的更改 在底部看到最旧的更改 但这很烦人 因为大多数时候 您希望看到最新的修订版 所以 假设我有 100
  • 为 CKEditor 指定自定义配置文件

    我正在尝试将 CKEditor 添加到我当前正在开发的页面 但在让它获取我的自定义配置文件时遇到问题 我在 Visual Studio NET 2008 中使用 CKEditor 我需要自定义显示的工具栏 因为 Basic 太少了 而 Fu
  • 如何在 XAML 和 C# 中将字符串列表显示为 DataGrid(表)

    我已经在 SO 上潜伏了很长时间 直到最近才决定建立一个帐户 我花了很多时间试图解决这个我一直没有询问的问题 但我就在这里 我正在努力实现的目标 我有一个字符串列表 例如 Mango Banana Melon 我们称之为水果 我想将其显示为
  • 快速 HTML 表格排序?

    是的 我知道有一个lot有很多 JS jQuery 程序可以做到这一点 我目前正在使用http www kryogenix org code browser sorttable sorttable js http www kryogenix
  • 将单元格背景颜色设置为其包含的 RGB 值。如何?

    下面是我希望通过手动复制和粘贴以外的方式实现的屏幕截图 这是材料设计调色板 在 Excel 中看起来很棒 如何循环遍历范围 B2 B15 并将每个单元格背景颜色设置为其相应的包含颜色 也许是一个VBA loop去经历垂直 B 单元格范围 解
  • 使用plot(...,add=T) 叠加栅格图会导致最终图任意错位

    我发现 当我尝试使用plot add T 叠加多个栅格时 如果我尝试将超过3 个栅格叠加在一起 则后续图不会正确对齐栅格 我的初衷是创建一个模拟土地覆盖的分类地图 其中代表覆盖类别的颜色深浅随着我们模型投影的确定性而变化 为此 我创建了一个
  • 如何使用curl将多个参数传递给cron作业?

    我正在运行两个 cron 作业 这个执行没有问题 curl sS http example com cronjob php days 1 但这根本不运行 curl sS http example com cronjob php days 1
  • Spring HATEOAS(w Spring Boot)返回 Resources 或 PagedResources 结果时出现 JAXB 编组错误

    我的控制器中有这样的东西 RequestMapping ResponseBody public HttpEntity
  • PhoneGap 应用程序在 Android 上无响应

    我创建了一个简单的 PhoneGap 应用程序 现在只需在您点击按钮时拍摄一张照片 然后在同一页面上的图像中显示该照片 我已经构建了iOS和Android版本 iOS版本运行良好 另一方面 Android 版本突出显示该按钮 但从不切换到相
  • Rest 和 Http 中“无状态”的含义

    当我阅读有关 REST 是什么的文档时 他们总是说 REST api 应该是无状态的 在这里 我感觉有点尴尬 因为普通的 HTTP 也是无状态的 既然REST可以说是一种使用HTTP协议的特殊架构 那么说REST应该是无状态的似乎是多余的
  • 将更改从通用差异导入 git 存储库

    我正在尝试将更改从一个源代码控制系统 专有且复杂 导入到 git 存储库中 我目前正在通过运行一个脚本来执行此操作 该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库 但由于各种原因 这已变得不可行 对于每个修订版 我都可以获得描