如何将Git与SVN树重新同步?

4

背景

我正在给一个使用Subversion的项目添加一些功能 - 我正在使用git-svn将其克隆到我的本地仓库,使用git-svn rebase保持与官方主干最新更改同步并保持历史线性。

最近我忘了自己的操作,进行了一些合并,这搞乱了我的变基 - 长话短说,我需要花一些时间用cherry-pick使历史线性化。之后1个rebase进行得很好,但现在尝试进行git-svn rebase时,出现了2008年(约700次提交)的Subversion提交之间的冲突,即使历史看起来是线性的。

问题

  1. 有没有一种方法可以重新构建/同步我的git仓库和svn主干?
  2. 如果我在另一台计算机上克隆我的git仓库(没有.git/svn文件夹)- 是否可以通过已知的仓库URL和最后的变基修订版本与svn同步?

如果远程甚至不使用git,为什么还要费心进行rebase呢?最终你只是会向他们发送一个补丁,对吧? - hasen
@hansen - 嗯,不是的...我不是官方贡献者。我将我的更改托管在Github上。有时候我只是给他们发一条消息,告诉他们我做了什么更改以及他们可以在哪里获取它。 - kyrisu
1个回答

2
您可以将分支重置为已经同步的提交(比如旧的提交),然后进行变基以实现同步。
为了保存本地所做的更改,您可能希望在此之前创建一个新分支(并在之后从该新分支中挑选必要的更改)。
git branch branch_with_my_changes
git reset --hard very_old_commit_that_is_synced
git svn rebase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接