Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git svn合并和提交分支_Git_Git Svn - Fatal编程技术网

Git svn合并和提交分支

Git svn合并和提交分支,git,git-svn,Git,Git Svn,我最近一直在使用git svn通过git管理一个旧的svn存储库 我最近在我创建的一个分支机构工作: git签出-b本地分行svn分行 此后,我一直在该分支机构工作,并使用: git svn dcommit 现在是将本地分支合并回主分支的时候了,我尝试执行以下操作: git签出主机 git合并本地分支机构 到目前为止,一切顺利。现在我想将合并提交回subversion,因此我尝试以下操作: git svn dcommit 然而,现在我的主人正在向svn分支提交,而不是像我预期的那样提交主干。我有

我最近一直在使用git svn通过git管理一个旧的svn存储库

我最近在我创建的一个分支机构工作:
git签出-b本地分行svn分行

此后,我一直在该分支机构工作,并使用:
git svn dcommit

现在是将本地分支合并回主分支的时候了,我尝试执行以下操作:
git签出主机

git合并本地分支机构

到目前为止,一切顺利。现在我想将合并提交回subversion,因此我尝试以下操作:
git svn dcommit

然而,现在我的主人正在向svn分支提交,而不是像我预期的那样提交主干。我有没有遗漏什么,或者这种合并方式不推荐在svn分支之间进行合并


作为补充说明,我通过svn进行了合并,但我希望尽量避免使用svn。处理此问题的首选方法是什么?

git svn dcommit
始终向git svn id签名中指定的url发送更改,该签名是头的历史记录中第一个父提交链的最新更改

我想,您的合并是快进的(即,可以从本地分支/svn分支访问主引用),所以它只是通过“git merge”而不是merge commit creation设置为local branch

作为建议,请始终将--no ff选项与“git merge”一起使用,因为Subversion没有快进合并这样的概念。(您可以将此选项(
merge.ff=true
)设置为[or
branch.master.mergeoptions
中的默认值,对于Git<1.7.6],将其设置为“-no ff”,但请注意,如果您使用的遥控器超过1个,“Git pull”也将变为非快进)

为了避免SVN和/或git SVN:如果您有权访问您的存储库服务器,您可以看看为Subversion提供纯git(而不是git SVN)接口的项目。即使是在SubGit的情况下——强烈建议不要使用ff选项,因为快进合并(和快进重基)不能与分支移除和从另一个提交中重新创建区分开来(对于任何GitSVN翻译工具都是如此)


但可能是任何其他原因(我不知道其他原因)导致在最新提交消息中使用分支URL(而不是主干URL)显示“git svn id”。无论如何,请确保master指向正确的提交。

谢谢,我尝试了在分支中添加一个新文件,然后使用
git merge local branch将其合并回master——无ff
,然后使用
git svn dcommit
将master提交到svn,这次它提交到trunk。