3

最近我从 SVN 迁移到 git,我的团队已经开始在新的 git 存储库中工作。

后来我发现了一些转换问题,并通过一些修复和历史重写从 SVN 制作了第二个 git repo。

现在我有 SVN 存储库的第二个 git 副本(我很满意),我想用我的团队在第一个 git 存储库中已经做出的更改来修补它。

为此,我尝试使用 git 补丁:

  • git-format-patch --zero-commit --stdout > master.patch创建已经对master第一个 git repo 进行的更改的单个文件
  • 并从 第二个存储库的文件git-am中应用提交*.patchmaster

我指定--zero-commit,因为补丁文件中的哈希是错误的,因为我实际上有两个不同的存储库。

问题是,当我尝试应用补丁时,git am master.patch我得到:

Applying: %commit_name% error: patch failed: readme.md:5 error: readme.md: patch doesn't apply Patch failed at 0001 %commit_name% 失败的补丁副本位于:.git/rebase-apply/补丁解决了这个问题后,运行“git am --continue”。如果您希望跳过此补丁,请运行“git am --skip”。要恢复原始分支并停止修补,请运行“git am --abort”。

即使我在这个补丁中只有一个提交并且我想将它应用到同一个 repo 以获得相同的提交,但是在另一个分支上。

4

1 回答 1

0

看起来像--ignore-whitespace解决git am了主要问题,但我仍然有警告,如:

.git/rebase-apply/patch:56:尾随

警告:压制 9 个空格

错误警告:14 行添加空白错误。

于 2016-11-29T11:03:58.667 回答