git合并任意基本修订版(git-svn)

Sam*_*nes 5 git version-control merge git-svn git-merge

我正在使用git-svn对我公司的Subversion存储库进行离线开发,Subversion存储库是项目的记录存储库.为了实现管理可见性,我需要在SVN中维护我的功能分支.有时我需要在分支的生命周期内多次将来自主干的更改合并到功能分支.由于我需要在SVN中保持分支最新,我必须合并; 一旦他们被推向SVN,我就无法重新提交.此外,git svn dcommit从合并提交中删除第二个父级.这意味着在第一次git merge将分支根标识为合并基础而不是最近的合并父级之后的合并.因此,它尝试重新合并已经合并的更改,这几乎可以保证令人讨厌的冲突.

当我合并SVN时,我手动指定基本修订:

svn merge -r 49262:49608 $svn/trunk
Run Code Online (Sandbox Code Playgroud)

有没有办法让git与手动指定的基本修订版合并?

更新:

请注意,我需要指定两个修订版本,包括基本版本和父版本.我有一个历史

trunk: A -- B -- C -- D -- H -- I
             \         \
    feature:  E -- F -- G -- J -- K
Run Code Online (Sandbox Code Playgroud)

git svn dcommit已删除G和之间的父关系D.我需要运行的合并IK同一个基地D.简单地跑

$ git checkout feature
$ git merge trunk
Run Code Online (Sandbox Code Playgroud)

将尝试合并IK基础B而不是D,重新应用CD导致极端合并冲突.使用SVN,我会运行一个命令

$ svn switch $svn/feature
$ svn merge -r D:I $svn/trunk
Run Code Online (Sandbox Code Playgroud)

git merge没有指定基本修订的选项D.我正在寻找类似的东西

$ git merge --base D trunk
Run Code Online (Sandbox Code Playgroud)

但这样的选择似乎并不存在.

jth*_*ill 4

(编辑:对于执行此操作的较低级别方法,请参阅以前的修订,但这种方法是最快的)