如何将一个 Git 存储库变基到另一个 Git 存储库?

2023-11-22

我有一个 Git 存储库 (A),其中包含项目到某一时刻的开发情况。然后我丢失了这个存储库 A 所在的 USB 记忆棒。幸运的是,我有最新提交的备份,因此我可以稍后创建一个新的存储库 (B),在其中导入最新项目的状态并继续开发。 现在我恢复了丢失的 USB 记忆棒,所以我有两个 Git 存储库。

我想我只需要以某种方式将 repo B 重新设置为 repo A ,但我不知道该怎么做,也许使用 fetch/pull 和 rebase ?


如果 A 和 B 不是同一个存储库(您使用拥有的最新工作副本创建了 B),则必须使用graft假装他们有共同的历史。

Let’s assume you’ve added A as a remote for B as per VonC’s answer, and the repo looks like this1:

~/B$ git tnylog 
* 6506232 (HEAD, master) Latest work on B
* 799d6ae Imported backup from USB stick
~/B$ git tnylog A/master
* 33b5b16 (A/master) Head of A
* 6092517 Initial commit

创建一个嫁接,告诉 B 的根,其父级是 A 的头:

echo '799d6aeb41095a8469d0a12167de8b45db02459c 33b5b16dde3af6f5592c2ca6a1a51d2e97357060' \
 >> .git/info/grafts

现在,当您请求 B 的历史记录时,上述两个历史记录将显示为一个。使移植物永久化很简单git filter-branch没有争论。但是,在过滤器分支之后,您不在任何分支上,因此您应该git branch -D master; git checkout -b master.


1 git tnylog = git log --oneline --graph --decorate

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

如何将一个 Git 存储库变基到另一个 Git 存储库? 的相关文章

  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • Mercurial 合并的默认主干版本?

    当我们将 Mercurial 功能发布存储库中的更改合并到主干存储库时 我们总是会与 Maven POM 文件 pom xml 和 Mercurial hgtags 文件发生冲突 我们总是想保留主干版本 我们永远不需要功能发布存储库版本 有
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • 使用 gitignore 嵌套存储库。

    我想嵌套 2 个 git 存储库 我一直在阅读子模块 有一段时间我认为它很棒 我想我可能想要其他东西 这是我的情况 首先 我想我应该提到我的所有服务器都托管网站 并以 staging domain com 和 domain com 实时 模
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • Gerrit 和 Active Directory

    我正在尝试设置 Gerrit 以使用我们的公司 Active Directory 进行身份验证 我知道很多人都设法让它发挥作用 但它对我来说不起作用 如果我运行一个ldapsearch命令如下我得到了正确的结果 所以我知道我的搜索字符串是正
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 如何创建名称中带有正斜杠的标签

    当我已经有了类似的标签时 有什么方法可以创建名称中带有正斜杠的 git 标签吗 假设我有 1 16 0 标签 并且我想创建 1 16 0 1 0 0 标签 git tag 1 16 0 1 0 0 error refs tags 1 16
  • 使用Git记录文件复制操作

    当我使用 git mv 在 git 中移动文件时 状态显示该文件已被重命名 即使我更改了某些部分 它仍然被认为几乎是相同的东西 这很好 因为它让我可以跟踪它的历史记录 当我复制文件时 原始文件有一些历史记录 我想将其与新副本关联起来 我尝试
  • 在我的例子中,GIT 添加恢复(保留更改)

    在我对文件进行更改之后 我用git add FILE NAME 然后 我想将其恢复为未添加但与此同时保留更改 这个怎么做 git reset FILE NAME会做的 See the git reset manual https git s
  • 使用 XSLT 合并 2 个具有匹配“id”属性的 XML 文件

    当存在匹配的 id 属性时 我想使用 XSLT 合并 2 个 XML 文件 myFile1 xml 这是第一个输入文件
  • git-lfs 中的多个文件版本

    我正在尝试估计 GitHub 上我的项目的存储要求 并对 git lfs 如何存储多个版本的文件有一些疑问 git lfs 是否存储多个版本的文件 如果是这样 对文件的每次更改都会导致复制整个文件 还是仅存储差异 所有版本都会计入 gith
  • 如何在GIT中构建标签树?

    作为 GIT 的频繁用户 我喜欢git log graph尽我所爱git tag 我负责一个大型 GIT 存储库 其中有太多分支和标签 而且我的处理速度太慢西西弗斯式的 https en wikipedia org wiki Sisyphu
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 仅使用 git 存储未暂存的更改(不是 --keep-index)

    首先 我确实知道 keep index 这不是我想要的 因为它仍然隐藏着all更改 但将暂存的更改保留在工作树中 如果可能的话 我只想存储未暂存的文件 而无需再次添加所有更改git stash patch 如果您想存储索引 已暂存的内容 和
  • BitBucket 应用程序密码:git 命令行访问有哪些权限?

    我了解如何为 BitBucket 创建应用程序密码 如中所述Atlassian 的应用程序密码信息 https support atlassian com bitbucket cloud docs app passwords and 这个答
  • 在 Windows 下克隆 git repo 时,出现“错误:无法创建文件 <文件>...(是目录)”

    Z gt git clone git github com kennethreitz httpbin git Cloning into httpbin remote Counting objects 1073 done remote Com
  • Gitlab 备份错误:包对象因信号 9 死亡

    我有一个存储库 有 2 个分支 大小为 3 5GB 每个分支大约 1 5GB git 本身就有 700MB 这是错误 备份失败 失败的 失败 opt gitlab embedded bin git git dir mountdata git

随机推荐

  • WebView - 如果不请求两次就无法下载文件?

    如果我听DownloadListener 我得到了我需要请求的URL在浏览器已经请求之后 浏览器已经打开了到该 URL 的连接 这就是它知道这是下载的原因 为什么它不能向我传递该连接 我也尝试分配一个自定义WebViewClient to
  • 在字符串中的特定位置插入字符

    我想在字符串中的特定位置插入额外的字符 或新字符串 例如我想插入d在第四个位置abcefg to get abcdefg 现在我正在使用 old lt abcefg n lt 4 paste substr old 1 n 1 d subst
  • 如何使用 XML 通过 Spring Security Oauth2 启用 /oauth/check_token

    我已经使用 spring security 3 2 和 javaconfig 成功启用了 oauth check token 端点 但目前我仅限于 spring security 3 1 4 然后我坚持使用 XML 配置 oauth tok
  • 如何选取质数来计算哈希码?

    这个问题是根据乔恩 斯基特 Jon Skeet 对这个问题给出的答案而来的 重写 System Object GetHashCode 的最佳算法是什么 为了计算哈希码 使用以下算法 public override int GetHashCo
  • Python 同步 stdout 和 stderr 输出

    使用以下代码 import sys print INFO flush True file sys stdout print ERROR flush True file sys stderr 有时输出是 ERROR INFO 有时 INFO
  • 访问 Roslyn REPL 中的 .config 文件

    使用罗斯林 2012 年 6 月 CTP 有没有办法为 Roslyn C Interactive REPL 提供正在探索的代码的 config 文件 一个简单的示例场景是依赖于通常从 app config web config 获取的连接字
  • glUniformBlockBinding 的用途是什么?

    假设我有一个索引处带有 UniformBlock 的着色器程序0 绑定 UniformBuffer 以下显然足以将 UniformBuffer 绑定到块 glUseProgram program glBindBuffer GL UNIFOR
  • MySQL 异常处理程序正在处理访问异常

    我试图发生错误时回滚 但仍然让客户端接收到错误 这实际上可能是不可能的 除非有一种方法可以访问异常处理程序中的错误 可以从异常中 抛出 即可以发出信号 CREATE PROCEDURE p BEGIN DECLARE EXIT HANDLE
  • 聚集和非聚集索引性能

    我有一个巨大的表 约 1000 万行 在随机的 uniqueidentifier 列上有集群 PK 我对此表执行的最多操作是如果尚不存在具有相同 pk 的行 则插入新行 为了提高它的性能 我使用 IGNORE DUP KEY ON 选项 我
  • 如何在 C# 中消息框关闭后强制按钮、文本框在表单上重新绘制

    我有一个带有按钮 文本框和用户控件的表单 单击按钮时 它会调用另一个类中的方法 在此类中 将打开一个消息框 当用户单击 确定 时 消息框将关闭 类方法将持续 10 秒左右 然后结束 在这 10 秒内 消息框结束后的任何文本框或按钮仍然显示消
  • 将 UIView 图层转换为 UIImage

    我正在视图中使用 AVPlayerLayer 播放视频 我需要将视图转换为图像 我尝试过 myview layer renderInContext context 但这只给出黑色图像 我想将当时的视图转换为带有视频的图像 这个转换会同时发生
  • 代码合同:ccrewrite 退出并显示代码 -1?

    我是代码合同的新手 我下载了最新版本的代码合约项目 1 4 40314 1 并开始在我的项目中实现它 当我通过 VS2010 中的 代码合同 选项卡启用 运行检查 时 出现此错误 Error 1 The command C Program
  • 想要在使用 WshShell.Exec 方法中隐藏命令提示符窗口

    我想从 javascript 执行 java 程序并希望获得输出 我详细地尝试了以下代码 WshShell new ActiveXObject WScript Shell var launch cmd exe c java classpat
  • 使用 string.gsub 替换字符串,但只能替换整个单词

    我有一个搜索替换脚本 可以用来替换字符串 它已经具有执行不区分大小写的搜索和 转义 匹配的选项 例如允许在搜索中搜索 等 然而现在我被要求仅匹配整个单词 我尝试在每个末尾添加 s 但这与字符串末尾的单词不匹配 然后我无法弄清楚如何捕获白色
  • 仅当使用括号调用函数时,Vue 模板中的函数调用测试才会通过

    我将 Vue v2 6 与 Jest v24 9 和 Vue Test Utils v1 03 一起使用 为了模拟一个方法 我看到了两种不同的语法 wrapper vm updateCart jest fn and wrapper setM
  • 在 Asp.Net Core 2.1 中找不到帐户页面

    我从 Visual Studio 创建了一个全新的网站 并选择了 个人用户帐户 身份验证 这一页 LoginPartial cshtml包含以下内容 ul class nav navbar nav navbar right li a Reg
  • 使用 Google Maps Javascript API v3 的 HTML/CSS 标记

    我们公司刚刚从 Leaflet js 迁移到 Google Maps API 我四处搜寻 试图找到一个simple将 HTML CSS 标记 框作为叠加层集成到 Google Maps Javascript API v3 中的方法 到目前为
  • SVG:Drop-Shadow 滤镜在移动 Safari 上对 SVG 进行像素化

    我在 SVG 文件中使用投影滤镜 该文件使用img标签 在我的 MacBook 上 Safari 浏览器看起来不错 然而 在移动版 Safari 中 图形变得非常像素化并失去了所有清晰度 未应用滤镜时 SVG 渲染效果良好 除了通过过滤器之
  • 如何将此 Python 2.7 代码转换为 Python 3?

    以下代码适用于 Python 2 7 将局部变量动态注入到函数作用域中 myvars var 123 def func exec locals update myvars print var func assert var not in g
  • 如何将一个 Git 存储库变基到另一个 Git 存储库?

    我有一个 Git 存储库 A 其中包含项目到某一时刻的开发情况 然后我丢失了这个存储库 A 所在的 USB 记忆棒 幸运的是 我有最新提交的备份 因此我可以稍后创建一个新的存储库 B 在其中导入最新项目的状态并继续开发 现在我恢复了丢失的