【发布时间】:2012-11-02 19:38:44
【问题描述】:
我有两个存储库历史被复制和损坏的情况(通过围绕 SVN 的交互和迁移——不是我的选择)。我在同一个临时维护存储库中将两个存储库作为远程存储库。他们共享数百个历史提交,然后“旧”提交在几个分支上继续进行几十个。我需要将“新”树快进到旧树的状态。然而,由于重整,尽管它们具有相同的内容,但它们不会被识别为同一棵树。
我想告诉 git “这两个提交是相同的,尽管作者不同”(作者 ID 在翻译中被混淆了)。如果可能的话,我真的很喜欢它是否可以遍历两个远程树并为每个具有相同内容的节点建立关联。这意味着我可以在两者上手动标记“commit 1”,然后让它完成剩下的工作。否则我需要手动标记每个分歧的根源(不会太糟糕,但不希望这样做)。
我尝试使用移植点,这几乎是我想要的——gitk 显示了我想要的,但是当我将它推回主(新)存储库时,它拖着数百个重复提交。这样做也有点烦人,因为我必须为尚未合并的子节点这样做。
我找到了https://stackoverflow.com/a/973403/372757,并认为它会起作用:我只需要将旧提交重新定位到新存储库,每个分支一次。
不过,我还是想知道我最初的请求是否可行。
【问题讨论】:
-
如果您希望能够推送该信息并将其用于远程仓库,则需要
git replace而不是grafts。
标签: git version-control merge