Git SVN merge丢失了到主干的链接
编辑:我看到以前有人问过这个问题!具有正确权限的人可能会将此作为副本关闭 我正在使用git svn。我最近完成了git中一个分支的工作,该分支跟踪SVN中的一个分支。在分支中工作时,我使用了以下两个命令Git SVN merge丢失了到主干的链接,git,git-svn,Git,Git Svn,编辑:我看到以前有人问过这个问题!具有正确权限的人可能会将此作为副本关闭 我正在使用git svn。我最近完成了git中一个分支的工作,该分支跟踪SVN中的一个分支。在分支中工作时,我使用了以下两个命令 $ git svn rebase $ big svn dcommit 一切都很好。git中的“master”跟踪svn/trunk,git中的“myBranch”跟踪svn/branchs/myBranch。但在我将所有内容都本地合并到git之后 $ git checkout master $
$ git svn rebase
$ big svn dcommit
一切都很好。git中的“master”跟踪svn/trunk,git中的“myBranch”跟踪svn/branchs/myBranch。但在我将所有内容都本地合并到git之后
$ git checkout master
$ git merge myBranch
我去推。。。并假设master将推送到svn/trunk。但事实并非如此。相反,“master”现在也推送到svn/branchs/myBranch。不知怎的,当我把“myBranch”合并成“master”时,“master”的跟踪功能被改变了
我可能做错了-但我试图明确地“推”到主干
$ git svn dcommit remotes/trunk master
但那个语法失败了,现在我得到了
$ Committing to http://<repo>/trunk ...
dcommitted on a detached HEAD because you gave a revision argument.
The rewritten commit is: b461234...
$Committing tohttp:///trunk ...
因为您提供了修订参数,所以D在分离的头上提交。
重写的提交是:b461234。。。
SVN主干仍未更新
如何在git中合并,然后将其推送到SVN?我遵循的指南暗示我可以与正常的git语法合并。它只是没有跟踪并解释为什么我的“主”没有跟踪我合并的分支
我还有一个与命令行并行使用的分支,在我如上所述手动合并之后,tower现在在下拉列表中将所有远程分支“显示”为“推送”或“提交到”,但我无法更改svn/myBranch中的选择。。。这可能意味着我不能?如果
master
正在跟踪您的svn
遥控器,您可以执行以下操作:
git svn dcommit
当您在主机上时
。使用--dry run
查看提交的方向以确保!如果它坏了,您可以编辑.git/config
并修复svn remote
条目:
[svn-remote "svn"]
url = svn+ssh://some.machine.net/svn/path/to/tree
fetch = trunk:refs/remotes/trunk
或者不管它需要什么。不,您不能将git合并提交到Subversion 从您提供的链接中阅读以下段落: 当您熟悉Git工作流时,您可能会创建主题分支,处理它们,然后将它们合并到中。如果您正在通过git svn推送到Subversion服务器,那么您可能希望每次都将工作重定到单个分支上,而不是将分支合并在一起。选择重定基址的原因是Subversion有一个线性历史,并且不像Git那样处理合并,因此Git svn在将快照转换为Subversion提交时只遵循第一个父级 在具有合并历史记录的分支上运行dcommit效果很好,只是当您查看Git项目历史记录时,它没有重写您在实验分支上所做的任何一次提交—相反,所有这些更改都出现在单次合并提交的SVN版本中 当其他人克隆该工作时,他们看到的只是合并提交,所有工作都被压缩到其中;他们看不到提交数据,也看不到提交数据的来源或提交时间
根据我包含的链接,我猜以下内容是误导性的,因为尽管有限,我认为文本暗示它仍然有效。。。。现在,如果您想将您的opera分支合并到主干(您的主分支)中,您可以使用普通的git合并。但是您需要提供一个描述性的提交消息(通过-m),否则合并会说“merge branch opera”,而不是一些有用的东西(因为Git将自动为您检测适当的合并基础),这不是正常的Git合并提交。您必须将此数据推送回Subversion服务器,因为该服务器无法处理跟踪多个父级的提交;因此,在推送它之后,它看起来就像一个提交,在一个提交下的另一个分支的所有工作中被挤压。