最近,我从SVN迁移到了git,我的团队已经开始在全新的git存储库中工作。
后来,我发现转换存在一些问题,并通过一些修复和历史重写创建了第二个git存储库,该存储库是从SVN复制而来的。
现在,我有了一个我很满意的第二个git版本的SVN存储库,并且我想用已经在第一个git存储库中由我的团队进行的更改来打补丁。
为了这样的目的,我尝试使用git patches:
git-format-patch --zero-commit --stdout > master.patch
创建一个单独的文件,其中包含应用于第一个git存储库的master
的更改- 使用
git-am
在第二个存储库的master
上应用来自*.patch
文件的提交
我指定了--zero-commit
,因为补丁文件中的哈希值将是错误的,因为我实际上有两个不同的存储库。
问题是,当我尝试使用git am master.patch
应用补丁时,我会收到以下错误:
应用:%commit_name% 错误:补丁失败: readme.md:5 错误:readme.md:补丁 无法应用。 补丁在0001 %commit_name% 失败。失败的补丁副本位于:.git/rebase-apply/patch。解决此问题后,请运行“git am --continue”。如果您想跳过此补丁,请改为运行“git am --skip”。要恢复原始分支并停止打补丁,请运行“git am --abort”。
即使我只有一个提交在此补丁中,并且我希望将其应用于同一存储库以获得相同的提交,但在另一个分支上仍然会出现此错误。