git svn在获取时忽略错误提交(假装它不是合并)

时间:2014-09-17 20:36:51

标签: git svn git-svn

我的问题与此类似:With "git svn", Can I Ignore Specific Git Commits While Fetching?

我使用git-svn和标准的svn repo:

trunk
branches
tags

然后一个同事意外地将根分支到一个项目分支中,所以它看起来像这样:

trunk
branches
   badProject
      trunk
      branches
      tags
tags

如果分支已经死亡,我可能可以使用--ignore-paths来忽略它

但是,在意识到错误之后,开发人员在/branches/badProjects/trunk中提交了对错误项目的更改,然后将其合并到/trunk

git-svn fetch死了。我怎么能假装这个坏分支没有发生?

有没有办法让git-svn相信没有分支并将合并视为主干,就好像它是普通的checkin而不是合并的分支?

1 个答案:

答案 0 :(得分:0)

假设我们将初始分支创建为666,在800处签入,在1000处合并 我设法按照以下方式开始工作:

git svn reset -r665
git svn fetch -rBASE:665
git svn fetch -r667:799
git svn fetch -r801:999
git svn fetch -r1000 --no-follow-parent
git svn fetch -r1001:HEAD

第1行和第2行确保我在错误提交之前退出。

第3行和第4行为不是坏分支的修订提取更改

第5行--no-follow-parent获取合并但未确认它实际上是合并

第6行得到了其余部分。