【问题标题】:Rebase branch with 1 file added on shallow clone?在浅克隆上添加 1 个文件的 Rebase 分支?
【发布时间】:2023-03-18 12:06:01
【问题描述】:

我已经分叉了 Homebrew,分支添加了一个公式,然后推送到我的 fork。

现在我在一台新机器上,我的 fork 落后了几个(数十、数百、数千)次提交。

因此,本地 Homebrew 存储库是一个浅层克隆,我的分支出现在遥远且不为人知的过去。

如何将我的 fork 提取到重新基于 master 的本地分支中?

我会说,预计“你不能缺少历史记录” - 肯定有办法,当补丁如此简单时,只需几个提交即可添加一个随后修改的文件?

【问题讨论】:

  • 从 fork 获取固定分支时遇到什么问题?我相信这应该是可能的。那时你可能无法合并,因为它不会找到合并基础,但 rebase 也应该是可能的

标签: git homebrew git-rebase shallow-clone


【解决方案1】:

您可以将您的分支作为一系列补丁从分支所在的仓库导出:

git format-patch `git merge-base formula master`..formula

将这些补丁复制到您的 fork 中,并使用 git ammaster 之上的新分支中应用它们

以“Patching with "git format-patch" and "git am"”为例。

但关键点,当然,如果您必须首先访问包含您的formula 提交(以导出它们)的存储库。

【讨论】:

  • 因此,例如,如果我在进行新安装,我将克隆两个较新的历史记录 - 即。安装 homebrew - 并将我的分支的过期 repo 安装到一个单独的文件夹中,我可以从中导出?
  • @oll 是的,这就是想法:您需要访问带有分支的旧仓库才能导出它。
猜你喜欢
  • 2014-03-17
  • 2011-06-23
  • 1970-01-01
  • 2022-01-20
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
相关资源
最近更新 更多