如何在提交ID不匹配的两个相同仓库之间创建和应用git补丁

问题描述

我从GitHub浅克隆了一个git repo,并将其移至隔离的私有gitlab服务器。为了将浅表克隆推到新的仓库,我不得不丢失提交ID和标签(我使用了这个答案:link)。

现在,我想在外部创建git补丁,并将其移至私有gitlab服务器,以保持私有项目的更新。但是我知道git补丁依赖于持久的提交SHA来工作-并且两个项目中的提交SHA并不匹配。

我有办法创建可用的补丁程序吗?

解决方法

但是我知道git补丁依赖于持久的提交SHA来起作用

是的,如果您正在使用git am来应用git format-patch生成的补丁(作为seen here

git format-patch <first-commit-hash>^..<end-commit-hash>

但是,如果您使用的是git apply,则应该能够将这些路径应用于当前工作目录,而无需检查正确的SHA1。
请参阅“ What is the difference between git am and git apply?”。