`git-svn-rebase`vs`git-rebase-trunk`
我正在从事一个项目,该项目使用subversion作为他们的存储库。因为我需要做一些还不能发送到svn服务器的更改,所以我开始使用`git-svn-rebase`vs`git-rebase-trunk`,git,svn,rebase,Git,Svn,Rebase,我正在从事一个项目,该项目使用subversion作为他们的存储库。因为我需要做一些还不能发送到svn服务器的更改,所以我开始使用git svn,以便进行本地签入。我的设置如下所示: 分支:主干(跟踪svn主干)、主(非常接近svn中的内容)和主题 *------------------ trunk \ *-----------*--------- master \ *-------- topic 工作流: [on branc
git svn
,以便进行本地签入。我的设置如下所示:
分支:主干(跟踪svn主干)、主(非常接近svn中的内容)和主题
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
工作流:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
假设在git-svn-fetch
和git-svn-rebase
之间没有人向svn提交请求,
是否git-svn-rebase
在主机上运行与git-rebase-trunk
在主机上运行基本相同?
是否有更合理的工作流程可供使用?似乎有很多分支正在更改和重新定基。我知道我希望能够在svn中的任何内容上重新调整我的工作,但似乎我所做的调整比严格必要的要多。注意,从,如“”中所述:
这将从当前头部的SVN父级获取修订,并对当前(未提交给SVN的)工作进行重定
因此,在git checkout master
和git svn rebase
之前,您不需要git svn fetch
,特别是如果您只跟踪trunk
(master
的父级)
第二点,
git svn dcommit
将为master
上的每个新提交在svn中创建修订,但您的工作流不会在master
上显示任何新提交,只在主题上显示(在master
上从未合并)
评论意见:
根据这些文档,git svn dcommit
在没有指定分支的情况下将提交推到当前头上,而不仅仅推到master
上。因此,我从我的分支提交到SVN,然后依靠master
上的git SVN rebase
将提交从SVN带回。我在d提交后放弃主题
分支。这不是犹太教吗
他详细说明:
我不能把他们送到SVN。。。然而上游想要“冻结”主干以备发布,同时,我正在为下一个版本开发功能
但最终的问题是,“git-rebase-trunk-master与主分支上的git-svn-rebase相同吗?”如果是,那么我不需要不断地更改分支,只需要根据svn重新设置主分支的基础。但如果不是,当我git svn rebase时,会发生一些神奇的事情,我想知道
对此,我的答复是:
一个git svn fetch
后接一个git rebase trunk master
将相当于一个git svn rebase
第一个:所以在我git svn rebase
之前我不需要git svn fetch
。。。只要我在主机上
。但是如果我在主题上
,git svn fetch
将更新主干
,但将主机
和主题
单独保留。我从来没有git-svn-rebase
我的主题分支,我只是git-rebase
it。知道起来很有趣。@SeanMcMillan“只要我在master上”:是的,这就是我的想法。每次都要执行git checkout master
,因此……在第二次:根据文档,git svn dcommit
在没有指定分支的情况下将提交推到当前头上,而不仅仅推到master
。因此,我从我的分支提交到SVN,然后依靠master
上的git SVN rebase
将提交从SVN带回。我在提交后放弃主题
分支。这不是犹太教吗?@SeanMcMillan我不知道你为什么会在讨论这个话题时dcommit
,因为你的问题的一个前提是你“需要做一些不能发送到svn服务器的更改”。这就是为什么我质疑dcommit
的使用。但最终的问题是,“git-rebase-trunk-master
是否与主分支上的git-svn-rebase
相同?”如果是,那么我不需要不断更改分支,只需要根据svn重新设置主分支的基础。但如果不是这样,当我git svn rebase
时,会发生一些神奇的事情,我想知道。
git svn rebase