2

所以情况是这样的。

  • 有一个 svn 存储库(开源)
  • 我使用 git-svn 将它克隆到我自己的 repo 中(让我们称为 B)并有点分歧,svn repo 的所有者当时对获得 PR 不感兴趣。
  • 最后,svn repo 的所有者确实转移到了 git,我们称之为 repo C。所有者在导入时没有保留历史记录 :( [仅供参考,我确实提出转让我的 repo 的所有权]

我需要能够通知我的回购(B),现在我们可以从现在开始从 C 中提取?有什么好的方法可以做到这一点吗?我看了一下图表,但发现它很混乱。

在此先感谢您的帮助

4

2 回答 2

3

您可以将两个遥控器都保留在您的存储库中,只是您的存储库中有两个独立的分支:git-svn 旧分支和新分支(因为新分支不会与 git-svn 匹配) .

您将能够在它们之间进行区分,推拉到 C,并在其上重新定位您当前的分支。

只需更改远程 URL 并获取它:

git remote set-url origin <new-url>
git fetch origin

您还需要使用标签跟踪最后一个 SVN 头。

于 2013-08-03T14:59:11.603 回答
2

你可以试试:

git remote add neworigin /path/to/origin
git fetch neworigin
git checkout -b newmaster neworigin/master
git checkout master
git rebase newmaster
git branch --set-upstream master neworigin/master

我以前没有在你的情况下尝试过这个,也没有任何简单的方法来测试它,但看起来这应该可行。如果您达到了这一点并且一切顺利,您可以移除旧遥控器并像这样进行一些内部维护(假设旧遥控器被命名为“origin”):

git remote rm origin
git remote rename neworigin origin

鉴于这是未经测试的,可能值得在一次性分支或本地 repo 的副本上尝试此操作。

于 2013-08-03T15:03:53.673 回答