如何在没有公共根目录的情况下加入两个git repos,其中所有修改过的文件都相同?

时间:2010-03-08 20:49:52

标签: git

我有一个git-cpan-init的repo,它与我在github C:A:S:DBI上找到的另一个已经建立的git repo产生了不同的根节点。我已经在我的repo上开发了很多,我想在更权威的存储库的分支上合并或重放我的编辑。有谁知道如何做到这一点?我认为可以安全地假设修改后的文件中没有任何文件内容是不同的 - 代码库自08年11月以来就没有了。

为了清楚起见,git hub repo是权威的。我的本地回购是我想要的git hub,显示为一个真正的git fork。

2 个答案:

答案 0 :(得分:15)

您应该能够将远程数据库添加到现有存储库(使用git remote add),以便您可以将github存储库的内容提取到现有存储库中。

假设您的历史记录中有一个提交(称之为O),并且远程分支中的提交(称为R)对应于同一组文件(例如,它们都是相同发行版本的导入),然后你可以做一个'到'的rebase。假设您当前检查了更改的提示:

git rebase --onto R O             # R and O are sha1 ids (possibly abbreviated)

这会将自O以来的所有提交重放到新的R根提交。

完成此操作后,如果您未使用最新的远程主分支,您可以使用正常的rebase来实现目标,而git的历史记录跟踪将注意您的更改是以有意义的方式应用的

git rebase <remote_name>/master   # where <remote_name> is whatever
                                  # you called the github remote when
                                  # you used git remote add

答案 1 :(得分:0)

我认为Graft Point会有所帮助。