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

Eva*_*oll 9 git

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

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

CB *_*ley 15

您应该能够将遥控器添加到现有存储库(使用git remote add),以便您可以将github存储库的内容提取到现有存储库中.

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

git rebase --onto R O             # R and O are sha1 ids (possibly abbreviated)
Run Code Online (Sandbox Code Playgroud)

这会将自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
Run Code Online (Sandbox Code Playgroud)