我有两个Git仓库:内部和外部。内部仓库包含了我们的全部历史记录。外部仓库只有一个快照,它是三周前内部仓库的一个提交版本。从图形上看,它类似于这样:
A01
|
A02
|
A03
|
A04 --> snapshot to B01
|
A05
|
A06 - A07
| |
A08 |
| /
A09 /
| /
| /
+
|
A10
|
A11
|
A12
我的问题是如何将提交 A05 到 A12 最好地合并到本地副本仓库 B 中?(我会在推送到我们公开的仓库之前将它们压缩)
A 和 B 是完全不相关的仓库(B 不是作为 A 的克隆创建的;我们将仓库 A 从提交 A04 处检出副本,并将其检入新仓库 B)。
这其中的复杂之处在于我有文件重命名。仓库 A 包含了重构提交,其中文件被重命名和移动了。如果我只是拍摄 A12 的快照并提交到 B01,那么我必须告诉 Git 如何关联移动前后的文件(就像 Mercurial 中的 hg rename -A 一样)。这些信息已经在仓库 A 的历史记录中了,我不想重新创建它。